Facebook.com getLoginUrl()出现错误

Facebook.com getLoginUrl()出现错误,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我使用以下命令生成登录url: $facebook->getLoginUrl(array('canvas' => 1, 'fbconnect' => 0, "display"=>"page", 'next' => APP_URL, 'req_perms' => 'email,publish_stream,offline_access')) 然而,当用户点击链接时,他会被重定向到带有Facebook徽标的页面,并在其下方显示一条消息“Go to Faceboo

我使用以下命令生成登录url:

$facebook->getLoginUrl(array('canvas' => 1, 'fbconnect' => 0, "display"=>"page", 'next' => APP_URL, 'req_perms' => 'email,publish_stream,offline_access'))
然而,当用户点击链接时,他会被重定向到带有Facebook徽标的页面,并在其下方显示一条消息“Go to Facebook.com”。为什么会发生这种情况以及如何解决

一个活生生的例子:(只需点击认证链接)

$login\u url=$facebook->getLoginUrl(数组('canvas'=>1,'fbconnect'=>0,'req\u perms'=>'电子邮件,发布流,离线访问,'next'=>APP\u url));
回应“你需要”;

解决方案。

我遇到了这个问题,但原因不同。我添加它作为一个答案,以防它能帮助任何登陆这里的人

随着facebook的出现,出现了一个错误。请稍后重试“错误”页面,我看到了以下PHP通知,我在其中实现了facebook API:

  • 使用未定义的常量“appId”-假定为“appId”
  • 使用未定义的常量“secret”-假定为“secret”
  • 未定义的索引:appId
  • 未定义索引:secret
  • 使用未定义的常量范围-假定为“范围”
  • 使用未定义的常量重定向\u uri-假定为“重定向\u uri”
简单的回答是,这些错误是由我复制/粘贴Facebook SDK文档中的代码引起的

答案很长,前四个通知是由数组键名周围的引号引起的。它们是unicode,PHP无法识别。用标准单引号替换它们修复了它

最后两个原因是数组键不在引号中(从facebook SDK文档中复制):

改为:

$params = array(
  'scope' => 'read_stream, friends_likes','email',
  'redirect_uri' => "CALLBACK-URL.COM"
);

一些非常简单的问题让人难以发现!我希望这能帮助一些人。

这更多是因为缺乏PHP知识,而不是与Facebook PHP-SDK直接相关的问题。你应该总是引用PHP中的数组键名。我想指出的是,Facebook PHP-SDK文档中的示例就是这样提供的。虽然其核心原因是缺乏PHP知识,但这很容易让很多人绊倒。我在这里添加了答案,因为这个问题列在文档页面上。
$params = array(
  scope => 'read_stream, friends_likes','email',
  redirect_uri => "CALLBACK-URL.COM"
);
$params = array(
  'scope' => 'read_stream, friends_likes','email',
  'redirect_uri' => "CALLBACK-URL.COM"
);