试图获得应用程序访问令牌
我尝试使用以下代码为我的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"
什么是授权码,我怎样才能得到它?
获取应用程序访问令牌
要获取应用程序访问令牌,请调用以下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将以格式化查询stringforms的string进行响应:
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/ :
“因为它要求你包含你的应用程序秘密,所以你不应该试图在客户端进行这个调用,因为这会把这个秘密泄露给所有的应用程序用户。 你的应用程序秘密永远不会与任何人共享,这一点很重要。 出于这个原因,这个调用应该在服务器端执行“
而对于应用程序访问令牌也是如此 – 您不应该在客户端使用它,因为每个用户都可以在那里发现它,然后开始使用它来代表您的应用程序执行操作(或更改应用程序的许多设置)。
如果你的应用程序有一个服务器端的部分,你可以简单地在那里“build立”应用程序访问令牌,将应用程序ID和秘密连接到一个pipe道符号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 /工具和支持/
你也可以在不生成令牌的情况下使用这个POST端点,只要确保它是从服务端调用的,而不是客户端的app_secret被暴露给public:
https://graph.facebook.com/?id={url}&scrape=true&access_token={app_id}|{app_secret}