Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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
Facebook用户';在自己的网站上使用应用程序时的权限-集成在PHP中而不是Url中_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Facebook用户';在自己的网站上使用应用程序时的权限-集成在PHP中而不是Url中

Facebook用户';在自己的网站上使用应用程序时的权限-集成在PHP中而不是Url中,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我在我的网站上用PHP创建了一个Facebook应用程序。要在我的网站上使用此应用程序,用户必须使用Facebook身份验证登录 该应用程序基本上允许用户在其墙上发布默认评论。使用我的facebook个人资料帐户可以很好地工作,但当我要求我的朋友使用我的网站时,他得到了以下错误-“Uncaught OAutheException:(#200)用户没有授权应用程序执行抛出的此操作” 到目前为止,我找到的解决问题的唯一方法是输入以下URL-https://www.facebook.com/login

我在我的网站上用PHP创建了一个Facebook应用程序。要在我的网站上使用此应用程序,用户必须使用Facebook身份验证登录

该应用程序基本上允许用户在其墙上发布默认评论。使用我的facebook个人资料帐户可以很好地工作,但当我要求我的朋友使用我的网站时,他得到了以下错误-“Uncaught OAutheException:(#200)用户没有授权应用程序执行抛出的此操作”

到目前为止,我找到的解决问题的唯一方法是输入以下URL-
https://www.facebook.com/login.php?api_key=API_KEY&cancel_url=http://www.magimagi.com&next=http://magimagi.com/login/uploadtopage2.php&fbconnect=1&return_session=1&session_version=3&v=1.0&display=page&req_perms=user_about_me,用户生日,发布流,脱机访问

<pre>

/ Get User ID
$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(   array(
       'scope' => 'publish_stream'
      ));
}
</pre>
<pre>
<form id="selectFriend" name="selectFriend" method="post">
<label for="Friend">Friend:</label>
<select id="friend" name="friend">
<?php 
foreach($user_friends['data'] as $f){
echo '<option value="'.$f['id'].'">'.$f['name'] .'</option>';
} 
?>
</select>
<label for="URL">URL:</label>
<input id="link" name="link">
<input id="message" name="message">
<input type="submit" name="submit" id="submit" value="Send!">
</form>
我不想在我的应用程序上创建一个链接供用户点击——相反,我希望它集成到我网站上已经存在的PHP代码中

下面是我的一个PHP代码示例


/获取用户ID
$user=$facebook->getUser();
如果($user){
试一试{
$user_profile=$facebook->api('/me');
}捕获(FacebookApiException$e){
错误日志($e);
$user=null;
}
}
如果($user){
$logoutUrl=$facebook->getLogoutUrl();
}否则{
$loginUrl=$facebook->getLoginUrl(数组)(
'范围'=>'发布\u流'
));
}
这是HTML


朋友:
网址:

我刚刚试过,似乎为了从
/me
获取信息,您需要传递访问令牌(我不记得以前是这样)。如果
/me
,则使用用户id,效果很好,返回基本信息而不使用访问令牌。您还可以尝试通过当前请求传递访问令牌:

'未捕获的OAutheException:(#200)用户尚未授权应用程序执行抛出的此操作'

到目前为止,我找到的解决我问题的唯一办法是[…]

到目前为止,您似乎还没有完全掌握应用程序和授权的基本知识……因此,请开始阅读相关文档吧


谢谢。。。我替换了$user_profile=$facebook->api('/me');使用您的代码,现在出现以下错误-未捕获OAutheException:(#100)100001205835412_406682472715277无法解析为投递ID中抛出的有效用户ID-您从哪里获得该ID,为什么将其作为用户ID传递?我不知道-该应用程序的基本功能是让用户在单击链接时投递默认注释。你能帮帮我吗?谢谢。Igy想说的是,您在这里的评论中发布的错误来自另一个graph api请求。我们可以看到您在哪里查询墙柱ID或类似的内容吗?
$token = $facebook->getAccessToken();
$user_profile = $facebook->api('/me',array (
'access_token' => $token)
);