node.jsサーバーからfacebook access_tokenを取得しようとしたときに、次のエラーが発生しました。
{"エラー":{"メッセージ":"(#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というエラーをスローします。また、私のネットワーク接続(モバイルモデム経由で接続されたインターネット)はすぐに壊れます!この問題をグーグルで検索しているときに、これによく似たものを見つけましたが、完璧な解決策を見つけることができません...