【发布时间】:2014-07-30 01:06:35
【问题描述】:
我在 Internet Explorer 上使用 Facebook 应用时遇到问题。在其他浏览器上它可以正常工作,但在 IE 上我得到错误:
致命错误:未捕获的 OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。在第 1340 行的 /base_facebook.php 中抛出
我发现与此错误有关。它在我的代码中
$userinfo = $facebook->api('/me');
雇用是我的代码:
<?php
session_start();
header('Content-Type: text/html; charset=UTF-8');
require 'facebook.php';
// APPS INICIALIZATION
$appid = '123APPID123';
$facebook = new Facebook(array(
'appId' => $appid,
'secret' => '123SECRETID123',
'cookie' => true,
));
// END - APPS INICIALIZATION
?>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<script src="https://connect.facebook.net/en_US/all.js"></script>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '123APPID123', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
<br>
<?php
// RETRIVAL DATA AND OTHERS INFO
$userid = $facebook->getUser();
$userinfo = $facebook->api('/me');
// END - RETRIVAL DATA AND OTHERS INFO
// PUT DATA TO VARIABLE
$email = $userinfo['email'];
$first_name = $userinfo['first_name'];
$last_name = $userinfo['last_name'];
// DATA TESTER //
echo $email.'<br>';
echo $first_name.'<br>';
echo $last_name.'<br>';
?>
你有什么想法吗?
【问题讨论】:
-
如何登录用户?我假设您的代码中 $userid 为 0?
-
这是 Facebook 上的应用程序。第一个 php 脚本检查:你喜欢这个页面并且你正在登录,这是第二个脚本 - 只显示折扣并将用户信息放入数据库。
-
您需要用户的访问令牌才能以该用户的身份执行请求。如果您使用 user_likes 进行点赞,则 Facebook 不会批准
-
但是我从我的用户那里获得了这个 access_token,但在 Internet Explorer 上没有 ;-) 我为这个 $access_token 做了回显,在所有浏览器上我看到了普通的令牌密钥,但是在 IE 上我看到了 APP_ID|APP_SECRET而不是普通的访问令牌。我认为这是这个问题的关键。这部分在所有浏览器上都可以正常工作(IE 也是)。问题只是获取用户数据。
-
如果该应用是在 2014 年 4 月 30 日之后创建的,Facebook 必须先审查您对 user_likes 的使用,然后您才能询问在该应用上没有角色的用户。如果您将其用于类似门控,他们将不会批准它
标签: javascript php facebook internet-explorer