【发布时间】:2012-04-29 08:19:59
【问题描述】:
我在尝试从 node.js 服务器获取 facebook access_token 时遇到此错误:
{"error":{"message":"(#803) 您请求的某些别名不存在 : access_token","type":"OAuthException","code":803}}
以下是获取access_token的代码:
var options={
host:'graph.facebook.com',
path:'oauth/access_token?client_id=MYAPPID&redirect_uri=http://127.0.0.1:8000/&client_secret=MYAPPSECRET&code=CODEOBTAINEDFROMFB'
}
http.get(options,function(res){
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
从我的浏览器请求相同的 url 工作正常,我也得到了 access_token。这里的问题是什么?
更新 这可能是我从 node.js 中经历过的最有趣的事情。我已将上面的代码更新为:
var http=require('http')
var options={
host:'grah.facebook.com',
pathname:'/oauth/access_token',
search:'client_id=MYAPPID&redirect_uri=http://127.0.0.1:8000/&client_secret=MYAPPSECRET&code=CODEOBTAINEDFROMFB'
}
http.request(options,function(res){
console.log('http fb code')
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: '+chunk);
});
});
而发生的事情是服务器抛出一个名为socket hang up的错误。我的网络连接(通过移动调制解调器连接的互联网)也立即中断!在谷歌搜索这个问题时,我发现了很多类似的问题,但找不到完美的解决方案......
【问题讨论】:
-
代码的更新版本使用了错误的 Graph API 主机名。它是 graph.facebook.com 而不是 grah...
标签: facebook node.js facebook-graph-api