All Projects → ajimix → Asana Api Php Class

ajimix / Asana Api Php Class

A dependency free, lightweight PHP class that acts as wrapper for Asana API. Lets make things fast and easy! :)

Projects that are alternatives of or similar to Asana Api Php Class

Twitchcsharp
Twitch C# Wrapper for the Twitch v3 REST API
Stars: ✭ 36 (-73.72%)
Mutual labels:  wrapper, oauth
Bus
Bus 是一个基础框架、服务套件,它基于Java8编写,参考、借鉴了大量已有框架、组件的设计,可以作为后端服务的开发基础中间件。代码简洁,架构清晰,非常适合学习使用。
Stars: ✭ 253 (+84.67%)
Mutual labels:  wrapper, oauth
Colore
A powerful C# library for Razer Chroma's SDK
Stars: ✭ 121 (-11.68%)
Mutual labels:  wrapper
Mastodonkit
MastodonKit is a Swift Framework that wraps Mastodon's API
Stars: ✭ 134 (-2.19%)
Mutual labels:  wrapper
Fresh
🍋 A token refresh library for Dart.
Stars: ✭ 128 (-6.57%)
Mutual labels:  oauth
Ahk Libs
AutoHotkey library archive.
Stars: ✭ 125 (-8.76%)
Mutual labels:  wrapper
Rcloneexplorer
rclone GUI for Windows
Stars: ✭ 129 (-5.84%)
Mutual labels:  wrapper
Kayn
superagent-inspired Node.js lib (w/ **some** TypeScript support) for accessing Riot's League of Legend's API (discord: cnguy#3614)
Stars: ✭ 122 (-10.95%)
Mutual labels:  wrapper
Python Twitch Client
Python wrapper for Twitch API
Stars: ✭ 137 (+0%)
Mutual labels:  wrapper
Rialto
Manage Node resources with PHP
Stars: ✭ 128 (-6.57%)
Mutual labels:  wrapper
Libfaketime
libfaketime modifies the system time for a single application
Stars: ✭ 1,932 (+1310.22%)
Mutual labels:  wrapper
Giraffeql
🦒 Developer tool to visualize relational databases and export schemas for GraphQL API's.
Stars: ✭ 128 (-6.57%)
Mutual labels:  oauth
Terminal Canvas
Manipulate the cursor in your terminal via high-performant, low-level, canvas-like API
Stars: ✭ 125 (-8.76%)
Mutual labels:  wrapper
Dukglue
A C++ binding/wrapper library for the Duktape JavaScript interpreter.
Stars: ✭ 132 (-3.65%)
Mutual labels:  wrapper
Fosite
Extensible security first OAuth 2.0 and OpenID Connect SDK for Go.
Stars: ✭ 1,738 (+1168.61%)
Mutual labels:  oauth
Angular Diff Match Patch
An AngularJS wrapper for google-diff-match-patch
Stars: ✭ 135 (-1.46%)
Mutual labels:  wrapper
Vertx Auth
Stars: ✭ 122 (-10.95%)
Mutual labels:  oauth
Assent
Multi-provider framework in Elixir
Stars: ✭ 126 (-8.03%)
Mutual labels:  oauth
Pokeapi Js Wrapper
PokeAPI browser wrapper, fully async with built-in cache
Stars: ✭ 129 (-5.84%)
Mutual labels:  wrapper
Mailjet Apiv3 Nodejs
[API v3] Official Mailjet API v3 NodeJS wrapper
Stars: ✭ 137 (+0%)
Mutual labels:  wrapper

Asana API PHP class

A dependency free, lightweight PHP class that acts as wrapper for Asana API.
Lets make things fast and easy! :)

Installing

Choose your favourite 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([
    'personalAccessToken' => 'GET_IT_FROM_ASANA'
]);

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

Creating a task

$asana->createTask([
   'workspace' => '176825', // Workspace ID
   'name' => 'Hello World!', // Name of task
   'assignee' => '[email protected]', // Assign task to...
   'followers' => ['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', [
    '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 almost everything 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.

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

$asana->getData();

If you miss some functionality, open a pull request and it will be merged as soon as possible.

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 2021 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].