, (*1)
, (*2)
An unofficial WorkFlowy API written in PHP., (*3)
Disclaimer
The aim of the API is to keep things simple. Please keep in mind that it is an unofficial tool, and it may stop working at any time., (*4)
So, I strongly recommend you not to manipulate sensitive data with this API, and be sure to make regular backups of your lists., (*5)
Installation
By using Composer:, (*6)
{
"require": {
"johansatge/workflowy-php": "0.1"
}
}
If you do not use Composer, you can download the source files, install them anywhere on your project, and call the providden autoloader file:, (*7)
<?php require_once '/your/project/root/path/workflowy-php/src/autoload.php';
Usage
Login API
Because of the unofficial status of the API, you have to login first, by using your regular credentials, before being able to perform requests on your data., (*8)
use WorkFlowyPHP\WorkFlowy;
use WorkFlowyPHP\WorkFlowyException;
try
{
$session_id = WorkFlowy::login('user@domain.org', 'password');
}
catch (WorkFlowyException $e)
{
var_dump($e->getMessage());
}
The $session_id variable will be used later, when performing requests., (*9)
You have to use your unencoded password in your code.
So I strongly advise you to store it in a different file, or ask it once to the user, then store the session ID. (But keep in mind that the session does not last forever.)
This is a huge limitation, but for now there is no workaround., (*10)
Lists API
Lists-related stuff is managed with the recursive WorkFlowySublist class., (*11)
First, you will need to get the main (root) list., (*12)
use WorkFlowyPHP\WorkFlowyList;
$list_request = new WorkFlowyList($session_id);
$list = $list_request->getList();
Then, you will be able to perform the following operations on the resulting $list, or its sublists., (*13)
| Function |
Returns |
Description |
$list->getID(); |
string |
Get the ID of the list |
$list->getName(); |
string |
Get the name of the list |
$list->getDescription(); |
string |
Get the description of the list |
$list->getParent(); |
WorkFlowySublist |
Get the parent of the list |
$list->isComplete(); |
boolean |
Get the status of the list |
$list->getCompletedTime(); |
int |
Get the completed time of the list (Unix timestamp) |
$list->getLastModifiedTime(); |
int |
Get the last modified time of the list (Unix timestamp) |
$list->getOPML(); |
string |
Get the list and its sublists as an OPML string |
$list->getSublists(); |
array |
Get the sublists of the list |
$list->searchSublist('/My sublist name/'); |
WorkFlowySublist |
Returns the first child list matching the given name |
$list->searchSublist('/My sublist name/', array('get_all' => true)); |
array |
Returns all children lists matching the given name |
| Function |
Parameters |
Description |
$list->setName('My sublist'); |
string |
Sets the list name |
$list->setDescription('My sublist description'); |
string |
Sets the list description |
$list->setParent($parent_list, 2); |
WorkFlowySublist,int
|
Sets the list parent and its position |
$list->setComplete(true); |
boolean |
Sets the list status |
$list->createSublist('My sublist name', 'My sublist description', 9); |
string,string,int
|
Creates a sublist |
The methods below are used to edit data., (*14)
Keep in mind that they will send requests to the server, but not update the existing variables., (*15)
For instance, if you change the parent of a list and call the getSublists() method on its old parent, the list will still be present in the resulting array., (*16)
Account API
| Function |
Returns |
Description |
$account_request = new WorkFlowyAccount($session_id); |
WorkFlowyAccount |
Gets an account object |
$account_request->getUsername(); |
string |
Gets his username |
$account_request->getEmail(); |
string |
Gets his email address |
$account_request->getTheme(); |
string |
Gets his selected theme |
$account_request->getItemsCreatedInMonth(); |
int |
Gets the number of items created during the month |
$account_request->getMonthlyQuota(); |
int |
Gets his monthly quota |
$account_request->getRegistrationDate('d-m-Y'); |
string |
Gets his registration date Leave the format empty to use the default value ('Y-m-d H:i:s') |
$account_request->getRegistrationDate('timestamp'); |
string |
Gets his registration time |
Changelog
| Version |
Date |
Notes |
0.2.3 |
2019-05-17 |
Fix authentication process (#10) |
0.2.2 |
2019-02-13 |
Fix authentication process (#8) |
0.2.1 |
2018-11-11 |
Fix getLastModifiedTime() and getCompletedTime() methods Internal WorkFlowy API started returning timestamps in seconds |
0.2.0 |
2018-07-21 |
Fix getItemsCreatedInMmonth() method naming (renamed to getItemsCreatedInMonth()) Update documentation Update sample code |
0.1.3 |
2017-02-28 |
Add $list->getCompletedTime() & $list->getLastModifiedTime() methods (#5) Fix OPML encoding (#4) |
0.1.2 |
2016-06-26 |
Fix searchSublistwith get_all option (@hirechrismeyers) |
0.1.1 |
2015-08-25 |
Fix case of filenames (@citywill) |
0.1 |
2015-01-01 |
Initial version |
License
This project is released under the MIT License., (*17)
Credits