是否有不同类型的应用访问令牌?

时间:2012-05-31 12:35:06

标签: php facebook-graph-api oauth facebook-php-sdk facebook-oauth

Real-time Updates的文档说:

  

在所有情况下,您都必须发送OAuth应用程序access_token。应用   使用您的App ID和App Secret获取访问令牌:

     

https://graph.facebook.com/oauth/access_token?client_id=<APP_ID>&client_secret=<APP_SECRET>&grant_type=client_credentials

我已完成此操作并返回access_token=<APP_ID>|<String1>-<String2>形式的字符串。

另一方面,来自Facebook PHP SDK的方法BaseFacebook::getApplicationAccessToken()只是使用“|”将App ID与App Secret(看起来像一个32位十六进制表示的数字)连接在一起。作为分隔符:

/**
 * @return string The application access token, useful for gathering
 *                public information about users and applications.
 */
protected function getApplicationAccessToken() {
  return $this->appId.'|'.$this->appSecret;
}

这两种应用访问令牌有什么不同的用途?它们可以互换吗?

1 个答案:

答案 0 :(得分:1)

  

它们可以互换吗?

我的猜测是,他们是;两者都将被接受为您的应用程序的应用程序访问令牌,并将为您提供完全相同的权限。

PHP SDK已经知道你的应用程序ID,因为你用它初始化了Facebook对象实例 - 所以使用构建访问令牌的“简单”版本没有任何害处。 (并且为了放弃创建应用访问令牌的另一种方式,Graph API端点在这里使用将是愚蠢的,因为每个人都可以查看代码。)

另一方面,可能存在您的应用访问令牌必须在您的控件之外使用(?)的情况,因此它们也提供第一个版本,因此您不必泄露您的应用秘密