实时更新的文档中写道:
在任何情况下,都必须发送一个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端点在这里使用的方法将是愚蠢的,因为每个人都可以查看代码内部。(
另一方面,在某些情况下,您的应用程序访问令牌必须在您的控制范围之外使用(?(,因此他们也提供了第一个版本,这样您就不必泄露应用程序的秘密。