Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 实施Facebook页面标签竞争时遇到问题_Php_Facebook_Facebook Php Sdk_Facebook Page - Fatal编程技术网

Php 实施Facebook页面标签竞争时遇到问题

Php 实施Facebook页面标签竞争时遇到问题,php,facebook,facebook-php-sdk,facebook-page,Php,Facebook,Facebook Php Sdk,Facebook Page,我正在开发一个Facebook页面标签,将举办一场比赛 首先是fan gate,我已经用FacebookPHPSDK和签名请求实现了它 当用户通过风扇门(即页面)时。有一个带有条目详细信息的表单 现在我只能允许某人参加一次比赛 因此,我尝试获取用户id,但取决于Facebook帐户,我要么获取id,要么获取用户id=0 是否有任何方法可以让我获得唯一值,这样我就可以存储用户已进入比赛而无需允许访问。只有在用户已授予应用程序权限的情况下,才会在签名请求中提供用户id 那么,我将如何实施这样的竞争?

我正在开发一个Facebook页面标签,将举办一场比赛

首先是fan gate,我已经用FacebookPHPSDK和签名请求实现了它

当用户通过风扇门(即页面)时。有一个带有条目详细信息的表单

现在我只能允许某人参加一次比赛

因此,我尝试获取用户id,但取决于Facebook帐户,我要么获取id,要么获取用户id=0


是否有任何方法可以让我获得唯一值,这样我就可以存储用户已进入比赛而无需允许访问。

只有在用户已授予应用程序权限的情况下,才会在签名请求中提供用户id

那么,我将如何实施这样的竞争??因此,如果用户重新访问该页面,它将显示一条感谢您进入竞赛的信息。可靠的方法是通过ouath请求基本权限,即如果签名请求中的用户id为空,则将用户重定向到
https://www.facebook.com/dialog/oauth?      客户端\u id=你的应用程序\u id&redirect\u uri=你的\u URL
,一旦他们给你基本权限,将他们重定向回你的应用程序,然后你就可以访问他们的用户\u id,你可以从那里获得它。FB oauth-。。。当然,请求权限将不可避免地丢失一些条目;一个更好的方法是只要求用户以简单的形式输入他们的姓名和电子邮件,不必担心重复条目-这是条目之间的权衡,客户可以决定他们喜欢哪种方式,我也可以通过电子邮件这样做,所以至少我可以通知他们他们参与了竞争,我不想请求权限。我记得以前有一种通过FB javascript SDK(类似于通过ajax“要求登录”)登录用户的方法,它只需要用户操作,例如单击,您可以通过类似FB.getSession的方式获取用户数据,但我认为自从移动到oauth之后,这种方法不再可用;无论如何,我相信基于电子邮件地址的解决方案更好,这样你甚至可以为facebook以外的用户使用它