我只想检查用户是否喜欢iFrame应用程序中带有javascript的页面。
iFrame
FB.api({ method: "pages.isFan", page_id: my_page_id, }, function(response) { console.log(response); if(response){ alert('You Likey'); } else { alert('You not Likey :('); } } );
返回值:False 但是我是页面的粉丝,所以它不应该返回true吗?
我也把这根头发撕掉了。仅当用户授予了不理想的扩展权限时,您的代码才起作用。
简而言之,如果您打开OAuth2.0forCanvas高级选项,Facebook将$_REQUEST['signed_request']在选项卡应用程序中与请求的每个页面一起发送。如果您解析了signed_request,则可以获得有关该用户的一些信息,包括他们是否喜欢该页面。
OAuth2.0
$_REQUEST['signed_request']
function parsePageSignedRequest() { if (isset($_REQUEST['signed_request'])) { $encoded_sig = null; $payload = null; list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2); $sig = base64_decode(strtr($encoded_sig, '-_', '+/')); $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true)); return $data; } return false; } if($signed_request = parsePageSignedRequest()) { if($signed_request->page->liked) { echo "This content is for Fans only!"; } else { echo "Please click on the Like button to view this tab!"; } }