Search code examples
javascriptphabricator

Creating a new Phabricator task with javascript


I am trying to connect to Phabricator conduit API and create a task via a javascript bonded to a google sheet.

The Conduit API Docs linked here doesn't really explain as much. I have seen better API documentations!

Below is what I have in mind but this is a cURL and I have no idea how to make it Javascript or wither this would work or not? I appreciate the help

curl https://secure.phabricator.com/api/maniphest.edit \
-d api.token=api-token \
-d param= [
    {
      "type": "title",
      "value": "A value from a cell on the googlesheet"
    },
    {
      "type": "description",
      "value": "A value from a cell on the googlesheet"
    },
    {
      "type": "subscribers.add",
      "value": "A value from a cell on the googlesheet"
    }
  ] \

Solution

  • Generally speaking the steps are:

    First, generate an API token in: https://phabricator.yourdomain.com/settings/user/username/page/apitokens/

    where phabricator.yourdomain.com must be changed by the subdomain you have Phabricator installed and username must be changed by your administration user name.

    Then, let's say you have installed Phabricator in phabricator.yourdomain.com, you can request the API methods with URLs of the following type

    https://phabricator.yourdomain.com/api/method_name?parameter1=value1&parameter2=value2...

    where method_name must be replaced by the descriptor of a real method from this catalog: https://secure.phabricator.com/conduit/

    For example, if you want to read the contents of task number 125, with a generated API token of value api-svhcp2a3qmgkkjfa5f6sh7cm4joz, use the method maniphest.info to complete a URL like this:

    http://phabricator.yourdomain.com/api/maniphest.info?api.token=api-svhcp2a3qmgkkjfa5f6sh7cm4joz&task_id=125&output=json
    

    This URL can be directly tested in your preferred browser to obtain a JSON response with the information about task number 125 (make sure that task ID exists). Firefox will even show the returned JSON in a human-readable fashion.

    These working URLs can be then inserted in Javascript as

    window.location.href=http://phabricator.yourdomain.com/api/maniphest.info?api.token=api-svhcp2a3qmgkkjfa5f6sh7cm4joz&task_id=125&output=json
    

    or as an asynchronous Ajax call.