Подключитесь к Asana API с переполнением стека

Я пытаюсь подключиться к Asana API с помощью Asana-php, Когда я создаю свой index.php и поставить код нужно соединиться с OAuth У меня проблемы с подключением Asana. [this is my app in Asana][1]. How do I connect toАсана или что я делаю не так. Мой код такой:

require '/vendor/autoload.php';

$ASANA_CLIENT_ID = getenv('my_asana_client_id');
$ASANA_CLIENT_SECRET = getenv('my_asana_client_secret');

$client = Asana\Client::oauth(array(
'client_id' => $ASANA_CLIENT_ID,
'client_secret' => $ASANA_CLIENT_SECRET,
// this special redirect URI will prompt the user to copy/paste the code.
// useful for command line scripts and other non-web apps
'redirect_uri' => 'https://chefpepper.dyndns.org/ChefPepperProjects/auth/asana/callback'
));

echo "authorized=" . $client->dispatcher->authorized . "\n";

# get an authorization URL:
$state = null;
$url = $client->dispatcher->authorizationUrl($state);`

0

Решение

Я адвокат разработчиков в Асане, и, возможно, я могу вам помочь!

Во-первых, это хорошая идея, чтобы освежить поток OAuth (у нас есть некоторые документы на этом). По сути, идея состоит в том, что есть 3 актера: пользователь, ваше приложение и Асана. Поток, который вы, вероятно, ищете Вот.

Короткая версия для приложений OAuth:

  • Вы отправляете пользователя по URL-адресу, которым Асана владеет откуда угодно (это не обязательно должно быть в вашей интеграции, подойдет прямая ссылка) с вашим идентификатором клиента. Это позволяет пользователю предоставить вам доступ.
  • Если они соглашаются, Асана отправляет запрос на перенаправление в браузер пользователя с долгоживущим кодом. Обратите внимание, что это означает, что ваш сервер будет вызываться из браузера пользователя с этим кодом, поэтому он должен обрабатывать новый входящий запрос от браузера на любой адрес, указанный вами в качестве URI перенаправления, и что это местоположение должно быть доступно всем пользователи вашей интеграции, где бы они ни находились.
  • Вы отправляете этот код и ваш клиентский секрет Асане с fetchToken в php (или refreshAccessToken когда истекает последний токен). Это где ваше приложение фактически запрашивает авторизацию.
  • Мы отправляем обратно токен обновления, который представляет (приблизительно) пару учетных данных клиент-пользователь, действительную в течение часа.
  • Вы используете эти учетные данные для доступа к нашему API от имени этого пользователя.

Таким образом, есть несколько шагов после того, где этот код заканчивается пример в нашей php-библиотеке, которую нужно пройти, чтобы начать работу. Вы попали в ту часть, где вы инициализировали клиент и сгенерировали ссылку, по которой пользователям нужно перейти, но не все остальное (т. Е. Ваш php-скрипт никогда не запрашивал учетные данные у Asana), поэтому я рекомендую продолжить Пример и посмотрите, как далеко вы можете получить!

(Как примечание, если это для вашего собственного использования, а не для других пользователей, токены личного доступа начать в 10 раз легче, хотя они представляют фактические учетные данные для доступа — так что не передавайте их другим!)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]