Facebook アプリを継承しましたが、100% 意図したとおりに動作しません。前の開発者のロジックは理解できませんが、Facebook API を書き直すほど強くはありません。
アプリにはフォームがあり、ユーザー (ログイン時) はいくつかの質問に答える必要があります。彼が送信をクリックしたときに、彼がそのページを気に入っているかどうかを確認したいと考えています。フォームは、彼が送信した場合にのみ送信されます。
window.fbAsyncInit = function() {
FB.init({
appId : '[myappid]',
channelUrl : '//www.myurl.com/channel.aspx',
status : true,
cookie : true,
xfbml : true
});
};
$("form input[type='submit']").on("click", function(e) {
e.preventDefault();
setTimeout(function() {
FB.api('/me/likes/MY-PAGE-ID',function(response) {
if(response.data) {
alert(response.data); // I get this (empty) alert
if(!isEmpty(response.data)) {
alert('all ok'); // I never get this :(
//$("form").submit();
} else {
alert("You must \"Like\" the page."); // Every time
}
}
});
}, 1000);
// Unrelated code edited out - end brackets may not match 100%
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
現在、デスクトップでは、これは意図したとおりに機能します。ただし、Android ではそうではありません。最初に入力しif(response.data) {
ますが、データを返す必要がある次の警告ボックスには空が返されます。したがって、次の if 文には入りません。
私が理解していない部分は、最初の if ( response.data
exists) に入り、2番目に入らない理由です (ページが気に入られたとしても、応答が何らかの形で空であるため)。
残念ながら、テストする別のデバイスはありません。
明らかな明らかな間違いを見落としていますか?それを救うために私は何ができますか?