Php 解析来自Facebook graph的响应时遇到问题

Php 解析来自Facebook graph的响应时遇到问题,php,json,facebook,facebook-graph-api,graph,Php,Json,Facebook,Facebook Graph Api,Graph,我试图找出是否已经为用户(使用php)授予了“发布操作”的权限 我可以查询图形好的,我只是停留在解析响应上,以便能够获得publish_actions='grated' 查询是: $user\u权限= "" .$access_令牌 $permissions=json_decode(文件获取内容($user_权限)) 如果我打印回复 打印(权限) 我得到 stdClass对象([data]=>Array([0]=>stdClass对象( [权限]=>已安装[状态]=>已授予][1]=>stdCla

我试图找出是否已经为用户(使用php)授予了“发布操作”的权限

我可以查询图形好的,我只是停留在解析响应上,以便能够获得publish_actions='grated'

查询是:

$user\u权限= "" .$access_令牌

$permissions=json_decode(文件获取内容($user_权限))

如果我打印回复

打印(权限)

我得到

stdClass对象([data]=>Array([0]=>stdClass对象( [权限]=>已安装[状态]=>已授予][1]=>stdClass对象 ([权限]=>公共_配置文件[状态]=>已授予)[2]=>stdClass 对象([权限]=>发布\u操作[状态]=>已授予)))

可捕获的致命错误:无法转换类stdClass的对象 串

基本上,我只想能够在php中分配一个变量,如果publish_actions[status]=“grated”

在此方面的任何帮助都将不胜感激

更新

尝试下面的Sahil建议:

$user_permissions = "https://graph.facebook.com/me/permissions?access_token=" .$access_token;

$permissions = json_decode(file_get_contents($user_permissions, TRUE));

$hasPublishPerm = false;
print_r($permissions['data']);
print_r($permissions);
foreach($permissions['data'] as $permission){
   if($permission['permission']=="publish_actions" && 
      $permission['status']=="granted"){
        $hasPublishPerm = true;
        break;
   }
}

if($hasPublishPerm){
   echo "User has granted the publish permission";
}
else{
   echo "User has NOT granted the publish permission";
}
我得到这个错误:

致命错误:无法将stdClass类型的对象用作

就这么做吧-

$hasPublishPerm = false;
foreach($permissions['data'] as $permission){
   if($permission['permission']=="publish_actions" && 
      $permission['status']=="grantedd"){
        $hasPublishPerm = true;
        break;
   }
}

if($hasPublishPerm){
   echo "User has granted the publish permission";
}
else{
   echo "User has NOT granted the publish permission";
}

谢谢你的回复。这看起来应该可以工作,但我得到了一个错误:为foreach()提供的参数无效。请在foreach()之前执行
print\r($user\u permissions['data'])
print\r($user\u permissions)
并告诉我结果。对不起,我的错误。。。以下是我正在使用的代码:$user\u permissions=“.”$access\u token$权限=json_解码(文件_获取_内容($user_权限));打印(权限);我得到。。。stdClass对象([data]=>Array([0]=>stdClass对象([permission]=>installed[status]=>prograted)[1]=>stdClass对象([permission]=>public\u profile[status]=>prograted)[2]=>stdClass对象([permission]=>publish\u actions[status]=>prograted]))可捕获致命错误:无法将stdClass类的对象转换为stringYou正在使用不同的变量。您可以使用相同的for循环或其他。它应该是
foreach($permissions['data']作为$permission){
而不是
foreach($permissions['data']作为$permission){
。如果这是正确的,请给我一个
print\r
的回复,我将如何处理您打印的代码,我需要回复。我不明白为什么您甚至不能将我的代码集成到您的代码中-这么简单的事情。您将为此付出巨大的努力,请雇佣一名技术人员。顺便说一句,我已经编辑了答案