コードにfqlクエリがあり、先週(またはその前後)までは完全に機能し、その後突然機能しなくなりました。
以前のすべてのエイリアスを削除しようとしたため、「要求したエイリアスの一部が存在しません:」という奇妙な#803エラーが発生します。これは独特です(完全に赤いニシンだと思います)。そしてそれらを単に「名前」に置き換えます。
完全に私のロープの終わりに、これを引き起こしているであろう過去数週間の間にFacebookが何を変えたかを理解しようとしています。誰かが何か洞察を持っているなら、私はそれを聞いて本当に感謝しています。
私はここにコードを投稿していますが、過去2週間ほどのある時点まで、コードが数か月間完全に機能したことを示すコード自体についてのコメントは期待していません。
このコードの具体的な目的は、ユーザーの認証トークンを取得してから、/meリクエストでは利用できない詳細情報を取得することでした。
//I call this first to get the token
function checkStatus() {
try{
FB.getLoginStatus( function( loginResponse ){
if( loginResponse.status == "connected" ){
authToken = loginResponse.authResponse.accessToken;//this comes back as expected
expiresIn = loginResponse.authResponse.expiresIn;//this comes back as expected
getUserInfo();
} else {
registerApp();//this gets called if the user hasn't approved the app yet... this continues to work as expected
}
} );
}
catch(e){
alert("ERROR" + e);
}
}
//so the above method calls this
function getUserInfo(){
FB.api( "/me", function( meResponse ){
meResponse.authToken = authToken;
meResponse.expiresIn = expiresIn;
console.log("meResponse = " + JSON.stringify(meResponse));
//this contains all the correct expected data
FB.api(escape("/fql&q=SELECT name FROM user WHERE uid = '"+ meResponse.id +"'"),//here I've eliminated ALL extra aliases (though none of them were a problem before
function( response ){
console.log("RESP = " + JSON.stringify(response)); //this comes back with the following error:
//{"error":{"message":"(#803) Some of the aliases you requested do not exist: fql&q=SELECT name FROM user WHERE uid = 'xxxxxxxxx'","type":"OAuthException","code":803}}
}
)
} );
}