1

我已经开发了一些facebook应用程序(用php写的),应该允许用户只有在喜欢某个fanpage时才能使用它。获取有关Facebook喜欢的信息 - 奇怪的问题

一切工作良好,直到今天,当我收到用户关于阻止访问应用程序的反馈。

看起来应用程序不允许他们进入,因为他们并不喜欢粉丝页面,但重点是那些用户已经喜欢那个粉丝页面(我测试了很多次)。

林检查,如果用户喜欢用像/USER_ID/likes?target_id=PAGE_ID

此标准图形请求的粉丝专页,如果用户喜欢页面或空数组,如果他不大多返回一些阵列。在我的情况下,这些用户总是空阵列。

我也检查了/USER_ID/likes - 对于所有喜欢用户的列表,对于普通用户,我得到了他们喜欢的json数组的响应,如果“窃听”用户我再次获得空数组。

进出口使用与phpsdk PHP,所以所有的请求都与$facebook->api(...)

我喜欢2个用户现在这样的问题,其他人都很好做。

我不确定如果我做错了什么或它是一些facebook错误。

我很乐意听到任何有关Facebook API经验的人的意见。

在此先感谢。

+1

请出示一些代码,如果我错了纠正 – mishik

回答

0

问题可能出自用户未授权应用程序访问用户信息。您可以使用来自Facebook API的签名请求来查看用户是否喜欢该页面,这会更可靠。

require 'facebook.php'; 
$app_id = "app_id"; 
$app_secret = "app_secret"; 
$facebook = new Facebook(array(
    'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true 
)); 
$signed_request = $facebook->getSignedRequest(); 
if($signed_request["page"]["liked"] != 1) { 
    // Render the blocker page 
}else{ 
    // Business as usual 
} 
+0

我,但我虽然'$ signed_request [“页”] [“喜欢”]'当用户喜欢的应用程序,而不是一个粉丝专页返回true。我需要检查他是否喜欢指定的fanpage而不是应用程序。 – lab6

+1

该变量用于fanpage而不是应用程序本身。 – Siphon

+0

谢谢,那就解决了我的问题。 – lab6