facebook-php-sdk loginurl api 错误代码 100

Posted

技术标签:

【中文标题】facebook-php-sdk loginurl api 错误代码 100【英文标题】:facebook-php-sdk loginurl api error code 100 【发布时间】:2012-08-27 04:36:01 【问题描述】:

我正在尝试使用 Facebook php SDK (v.3.2.0) 从 https://github.com/facebook/facebook-php-sdk 下面是我的代码

$config = array(    'appId'  => '***',  
                    'secret' => '***',  
                    'cookie' => true 
                    );
require_once("facebook.php");

$facebook = new Facebook($config);

$params = array('scope' => 'user_birthday, user_location, email',
                'redirect_uri' => "http://my_domain.in/user/fb",    
                'display' => 'popup'
                );
$loginUrl = $facebook->getLoginUrl($params);

问题是当 loginUrl 被点击时,它会从 facebook 给出如下错误:

API 错误代码:100 API 错误描述:无效参数错误 消息:显示类型popup。在 www.facebook.com 上无效。你 应该访问不同的域(m.facebook.com,www.facebook.com), 或使用以下支持的显示类型之一:页面、popup、 iframe,触摸,无

问题是我哪里出错了? 仅供参考,之前相同的代码很好,现在不知何故它不起作用,我有点错过了问题实际上发生的时候,但在这之间我确实将 facebook-php-sdk 从 3.1.1 升级到 3.2.0,n 可能我的 facebook 应用程序中的域和 url 设置。

应用程序域:my_domain.in 网址:http://www.my_domain.in

此外, 连我的参数都改成

$params = array('scope' => 'user_birthday, user_location, email',
                'redirect_uri' => "http://my_domain.in/user/fb"
                );

我仍然收到带有不同消息的错误

API 错误代码:100 API错误描述:无效参数 错误消息:不支持的范围:'email.'。支持的范围:ads_management create_event create_note 电子邮件强> export_stream friends_about_me friends_activities friends_birthday friends_checkins friends_education_history friends_events friends_games_activity friends_groups friends_hometown friends_interests friends_likes friends_location friends_notes friends_online_presence friends_photo_video_tags friends_photos friends_questions friends_relationship_details friends_relationships friends_religion_politics friends_status friends_subscriptions friends_videos friends_website friends_work_history manage_friendlists manage_notifications manage_pages offline_access photo_upload publish_actions publish_checkins publish_stream read_friendlists read_insights read_mailbox read_page_mailboxes read_requests read_stream rsvp_event share_item sms status_update user_about_me user_activities user_birthday user_checkins user_education_history user_events user_games_activity user_groups user_hometown user_interests user_likes user _location user_notes user_online_presence user_photo_video_tags user_photos user_questions user_relationship_details user_relationships user_religion_politics user_status user_subscriptions user_videos user_website user_work_history video_upload xmpp_login

请帮忙, 谢谢。

【问题讨论】:

【参考方案1】:

在这种情况下,您不能使用 display 参数,因为您只是在创建一个 URL,而 URL 本身不包含任何告诉“我想在弹出窗口中打开”的能力。

该参数主要用于JS SDK外的FB.ui方法调用对话框。

只需从您的 $params 数组中删除该条目,它就可以工作了。

【讨论】:

感谢@CBroe 的回复,非常感谢。正如我在下面发布的那样,问题现在已解决。【参考方案2】:

已解决。

问题是我的 href 属性中有一个额外的字符(一个点), 如下编码

<a href="<?php echo $loginUrl; ?>.">

在再次查看错误消息后注意到它(弹出*.*电子邮件*.*)。

当我删除角色时它只是工作。 所以它不是由 facebook-php-sdk 版本或我的 facebook 应用程序中的域/url 设置引起的。

很抱歉给您带来任何麻烦。

【讨论】:

以上是关于facebook-php-sdk loginurl api 错误代码 100的主要内容,如果未能解决你的问题,请参考以下文章

shiro loginUrl拦截无效

ASP.Net MVC 3 将未经授权的用户重定向到 loginUrl

Session.Abandon 不会自动重定向到 asp.net 中的 loginurl

web.config 中的 loginURL 在基于虚拟目录的页面中形成身份验证

shiro+springmvc集成时,配置loginUrl='login.jsp',但是login.jsp页面在WEB-INF 目录下,导致无法显示

shiro-web-02