我试图让一个应用程序的访问令牌我这段代码的Facebook应用程序:
APP_ACCESS_TOKEN = FB.api(
"oauth/access_token",
{client_id: APP_ID, client_secret: APP_SECRET_CODE, redirect_uri: uri},
function(response){
console.log(response);
});
这应该是这样的:
GET https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID
&client_secret=YOUR_APP_SECRET
&redirect_uri=uri
但我得到一个错误:
code: 1
message: "Missing authorization code"
type: "OAuthException"
什么是授权码,我如何能得到它?
获得应用程序访问令牌
为了获得一个App访问令牌,可以调用下面的HTTP GET请求:
GET https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID
&client_secret=YOUR_APP_SECRET
&grant_type=client_credentials
该API将与形式的查询字符串格式化字符串回应:
access_token=YOUR_APP_ID|YOUR_APP_ACCESS_TOKEN
参考: http://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/
https://developers.facebook.com/docs/howtos/login/login-as-app/ :
“因为它需要你有你的App揭秘你不应该试图拨打这通电话的客户端,因为这将暴露这个秘密的所有应用用户。 重要的是,你的应用程序密钥不会与任何人共享。 出于这个原因,此调用应该进行服务器端”
而对于应用程序的访问令牌,这是相同的-你永远不应该使用它的客户端,因为每个用户都可以有现货的话,然后开始用它来代表你的应用程序的执行操作(或更改你的许多应用程序的设置)。
如果你有一个服务器端的一部分,你的应用程序,你可以简单地“建造”的应用程序访问令牌有自己,拼接应用程序ID和秘密与管道符号, app_id|app_secret
。
检查的node.js和JavaScript的用户。
getLongLiveToken: function(data){
FB.api('oauth/access_token', {
client_id: data.client_id, // FB_APP_ID
client_secret: data.secret, // FB_APP_SECRET
grant_type: 'fb_exchange_token',
fb_exchange_token: data.access_token // USER_TOKEN
}, function (res) {
if (!res || res.error) {
console.log(!res ? 'error occurred' : res.error);
} else {
var accessToken = res.access_token;
if(typeof accessToken != 'undefined'){}
}
});
}
我不知道的是,在代码露出APP客户端密钥是一个好主意,你可以从Facebook工具“访问令牌工具”的APP令牌只是令牌复制到你的代码的任何使用HTTPS://developers.facebook .COM /工具和支持/
您也可以使用这个帖子端点,而无需生成令牌,只是确保它从哪里app_secret暴露在公众的服务器不是客户端被称为:
https://graph.facebook.com/?id={url}&scrape=true&access_token={app_id}|{app_secret}