Php Facebook应用程序现在请求扩展权限而不是基本权限,
我的facebook应用程序最初要求用户提供基本权限,现在我添加了一些需要扩展权限的功能,除了将代码更改为如下,删除并重新添加应用程序之外,我还需要更改应用程序的任何其他内容 因为当我从我的个人资料中删除应用程序,然后尝试重新添加时,它只要求提供基本信息,我如何告诉facebook该应用程序现在需要扩展权限,因为它向我发出警告:OAutheException:(#200)用户尚未授权应用程序执行此操作 我是否需要重置更改某些设置的应用程序密码Php Facebook应用程序现在请求扩展权限而不是基本权限,,php,jquery,facebook-graph-api,facebook,Php,Jquery,Facebook Graph Api,Facebook,我的facebook应用程序最初要求用户提供基本权限,现在我添加了一些需要扩展权限的功能,除了将代码更改为如下,删除并重新添加应用程序之外,我还需要更改应用程序的任何其他内容 因为当我从我的个人资料中删除应用程序,然后尝试重新添加时,它只要求提供基本信息,我如何告诉facebook该应用程序现在需要扩展权限,因为它向我发出警告:OAutheException:(#200)用户尚未授权应用程序执行此操作 我是否需要重置更改某些设置的应用程序密码 > $facebook = new Faceb
> $facebook = new Facebook(array( 'appId' => 'xxxxxxxxxxxx',
> 'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx', ));
>
> // Get User ID
>
>
> $user = $facebook->getUser(); if ($user) { try {
> // Get the user profile data you have permission to view
> $user_profile = $facebook->api('/me');
> $uid = $facebook->getUser();
>
>
> $url = $facebook->getLoginUrl(array(
> 'canvas' => 1,
> 'fbconnect' => 0,
> 'scope' =>'publish_stream'));
>
>
> $attachment = array (
> 'access_token'=>$facebook->getAccessToken(), 'message' => 'I had a
> question: should I write a PHP facebook app that actually worked?',
> 'name' => 'I Asked Bert', 'caption' => 'Bert replied:', 'link' =>
> 'http://apps.facebook.com/askbert/', 'description' => 'NO',
> 'picture' => 'http://www.facebookanswers.co.uk/img/misc/question.jpg'
> ); echo "Test 1";
>
> $result = $facebook->api('/me/feed/','post',$attachment);
>
> echo "Test 2";
> $_SESSION['userID'] = $uid;
>
>
> } catch (FacebookApiException $e) {
> $user = null; } } else { die('Somethign Strange just happened
> <script>top.location.href="'.$facebook->getLoginUrl().'";</script>');
> }
$facebook=newfacebook(数组('appId'=>'xxxxxxxxxxx',
>“secret”=>“xxxxxxxxxxxxxxxxxxxxxxxxxxxx”,);
>
>//获取用户ID
>
>
>$user=$facebook->getUser();如果($user){try{
>//获取您有权查看的用户配置文件数据
>$user_profile=$facebook->api('/me');
>$uid=$facebook->getUser();
>
>
>$url=$facebook->getLoginUrl(数组)(
>“画布”=>1,
>“fbconnect”=>0,
>“范围”=>“发布流”);
>
>
>$attachment=数组(
>“访问令牌”=>$facebook->getAccessToken(),“消息”=>“我有一个
>问:我是否应该编写一个PHP facebook应用程序来实际工作,
>“姓名”=>“我问伯特”,“说明”=>“伯特回答:”,“链接”=>
> 'http://apps.facebook.com/askbert/“,”说明“=>”否“,
>'图片'=>'http://www.facebookanswers.co.uk/img/misc/question.jpg'
>);回声“测试1”;
>
>$result=$facebook->api('/me/feed/','post',$attachment);
>
>回波“测试2”;
>$\u会话['userID']=$uid;
>
>
>}catch(FacebookApiException$e){
>$user=null;}}其他{die('发生了一些奇怪的事情
>top.location.href=“'.$facebook->getLoginUrl().”“;”);
> }
如果您使用的是较新的3.0 PHP SDK,则在调用getLoginUrl时将req_perms更改为scope。这在较新的PHP SDK版本中发生了更改
此外,您还需要验证用户是否仍然授予了您的应用程序所需的扩展权限,如果他们没有,请重新提示他们获取权限。例如,您捕获一个FacebookApiException,然后将其重定向到getLoginUrl(),但该登录还应该像您在代码前面所做的那样指定所需的范围。下面的代码正在运行,首先检查权限,然后发布流,如果没有找到权限,则向用户请求权限
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
));
$user = $facebook->getUser();
$user_profile = $facebook->api('/me');
if( array_key_exists('publish_stream', $permissions['data'][0]) ) {
// Permission is granted!
// Do the related task
//$post_id = $facebook->api('/me/feed', 'post', array('message'=>'Hello World!'));
$post_id = $facebook->api('/me/feed', 'post', $attachment);
} else {
// We don't have the permission
// Alert the user or ask for the permission!
echo "Click Below to Enter!";
header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream")) );
}
我做了一个更新。最后,如果存在api异常(也称为无权限),则会有第二个getLoginUrl。将所需的作用域也添加到该调用中。