使用PHP连接到Asana API

使用PHP连接到Asana API,php,asana-api,Php,Asana Api,我正在尝试通过Asana php连接到Asana API。当我创建index.php并将需要连接OAuth的代码放入时,我在尝试连接Asana时遇到了一些问题。[这是我的Asana应用程序][1]。我如何连接到Sana`或我做错了什么。我的代码是: require '/vendor/autoload.php'; $ASANA_CLIENT_ID = getenv('my_asana_client_id'); $ASANA_CLIENT_SECRET = getenv('my_asana_cli

我正在尝试通过Asana php连接到Asana API。当我创建index.php并将需要连接OAuth的代码放入时,我在尝试连接Asana时遇到了一些问题。[这是我的Asana应用程序][1]。我如何连接到Sana`或我做错了什么。我的代码是:

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);`

我是Asana的开发者拥护者,也许我可以帮你

首先,重温一下我们在这方面的OAuth流可能是个好主意。基本上,这个想法是有3个参与者:用户、你的应用程序和体式。您可能正在寻找的流量是

对于OAuth应用程序,短版本为:

您将用户发送到Asana拥有的URL,该URL不必位于您的集成中的任何位置,只需直接链接您的客户端id即可。这允许用户授予您访问权限。 如果他们同意,Asana会向用户的浏览器发回一个重定向请求,其中包含一个长期存在的代码。请注意,这意味着将使用此代码从用户的浏览器调用服务器,因此必须处理从浏览器到指定为重定向URI的任何对象的新传入请求,并且集成的所有用户都必须可以访问此位置,无论他们在何处。 当最后一个令牌过期时,使用php中的fetchToken或refreshAccessToken将此代码和客户端密码发送给Asana。这就是应用程序实际请求授权的地方。 我们发送回一个刷新令牌,该令牌表示大约一个有效时间为一小时的客户端用户凭据对。 您使用这些凭据代表此用户访问我们的API。 因此,在这段代码从php库中的中退出之后,您需要经过几个步骤才能开始。您已经初始化了客户端并生成了用户需要访问的链接,但没有完成其余部分,也就是说,您从来没有让php脚本向Asana请求凭据,因此我建议继续使用该示例,看看您能走多远

作为旁注,如果这是供您自己使用,而不是供其他用户使用,那么就更容易开始使用,尽管它们代表实际的访问凭据-所以不要将它们分发给其他人