是否存在不同类型的应用程序访问令牌


Are there different types of app access tokens?

实时更新的文档中写道:

在任何情况下,都必须发送一个OAuth应用程序access_token。应用程序访问令牌是使用您的应用程序ID和应用程序密钥获得的:

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

我已经完成了这个操作,并返回了一个形式为access_token=<APP_ID>|<String1>-<String2>的字符串。

另一方面,来自Facebook PHP SDK的方法BaseFacebook::getApplicationAccessToken()只是使用"|"作为分隔符将应用ID与应用秘密(看起来像一个具有32位十六进制表示的数字(连接起来:

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

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

它们可以互换吗?

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

PHP SDK已经知道你的应用程序id,因为你已经用它初始化了Facebook对象实例——所以在那里使用构建访问令牌的"简单"版本没有坏处。(为了放弃创建应用程序访问令牌的另一种方法,Graph API端点在这里使用的方法将是愚蠢的,因为每个人都可以查看代码内部。(

另一方面,在某些情况下,您的应用程序访问令牌必须在您的控制范围之外使用(?(,因此他们也提供了第一个版本,这样您就不必泄露应用程序的秘密。

相关文章: