Code Monkey home page Code Monkey logo

asana-api-php-class's Introduction

Asana API PHP class

A PHP class that acts as wrapper for Asana API.
Lets make things easy! :)

It is licensed under the Apache 2 license and is Copyrighted 2016 Ajimix

Installing

Choose your favorite flavour

  • Download the php class from github.
  • Or use Packagist PHP package manager.

Finally require the asana.php file.

Working with the class

First declare the asana class

$asana = new Asana(array(
    'personalAccessToken' => 'GET_IT_FROM_ASANA'
));

Optionally you can pass an accessToken instead of a personalAccessToken if you use OAuth. Read below for more info.

Creating a task

$asana->createTask(array(
   'workspace' => '176825', // Workspace ID
   'name' => 'Hello World!', // Name of task
   'assignee' => '[email protected]', // Assign task to...
   'followers' => array('3714136', '5900783') // We add some followers to the task... (this time by ID)
));

Creating a task for another assignee than yourself will mark the task as private by default. This results in the task not being available for modification through the API anymore. Take a look at the API Reference for more fields of the Task you can directly pass to createTask.

Adding task to project

$asana->addProjectToTask('THIS_TASK_ID_PLEASE', 'TO_THIS_COOL_PROJECT_ID');

Commenting on a task

$asana->commentOnTask('MY_BEAUTIFUL_TASK_ID', 'Please please! Don\'t assign me this task!');

Getting projects in all workspaces

$asana->getProjects();

Updating project info

$asana->updateProject('COOL_PROJECT_ID', array(
    'name' => 'This is a new cool project!',
    'notes' => 'At first, it wasn\'t cool, but after this name change, it is!'
));

Do more

There are a lot more methods to do multiple things with asana.

See the examples inside examples folder, read the comments on the class file for class magic and read Asana API documentation if you want to be a master :D

If a method returned some data, you can always retrieve it by calling.

$asana->getData();

Enjoy ;D

Using Asana OAuth tokens

To use this API, you can also create an App on Asana to get an oAuth access token, then include the class:

require_once('asana-oauth.php');

Declare the oAuth class as:

$asanaAuth = new AsanaAuth('YOUR_APP_ID', 'YOUR_APP_SECRET', 'CALLBACK_URL');
$url = $asanaAuth->getAuthorizeUrl();

Where YOUR_APP_ID, YOUR_APP_SECRET and CALLBACK_URL you get from your App's details on Asana. Now, redirect the browser to the result held by $url. The user will be asked to login & accept your app, after which the browser will be returned to the CALLBACK_URL, which should process the result:

$code = $_GET['code'];
$asanaAuth->getAccessToken($code);

And you will receive an object with the access token and a refresh token The token expires after one hour so you can refresh it doing the following:

$asanaAuth->refreshAccessToken('ACCESS_TOKEN');

For a more detailes instructions on how to make oauth work check the example in examples/oauth.php

Author

Twitter: @ajimix

GitHub: github.com/ajimix

Contributors: view contributors

Copyright and license

Copyright 2016 Ajimix

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

asana-api-php-class's People

Contributors

airesvsg avatar ajimix avatar eflage avatar ehlovader avatar helmo avatar igorhim avatar javifr avatar jeff-greco avatar ltk avatar mnunes01 avatar mroach avatar robinbullocks4rb avatar rvanlaak avatar sammythesm avatar shagshag avatar sikker avatar stephen304 avatar vdespa-collab avatar xbakesx avatar zeeshanyshaikh avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.