php cURL错误在facebook api [英] php cURL error in facebook api

查看:206
本文介绍了php cURL错误在facebook api的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 php cURL 获取facebook api数据。一些代码在这里。第一个 cURL get access_token 然后查询以下内容。但是我收到错误警告:无效的参数提供foreach()然后我回应一个 $ body ,回错误消息:

I use php cURL to get facebook api data. some code here. first cURL get access_token then query something below. But I get error Warning: Invalid argument supplied for foreach() then I echo a $body , back error message:

HTTP / 1.1 400 Bad Request Cache-Control:no-store Content-Type:text / javascript; charset = UTF-8 Expires:Sat,01 Jan 2000 00:00:00 GMT P3P:CP =Facebook没有P3P政策,了解原因: http://fb.me/p3p Pragma:no-cache WWW-Authenticate:OAuthFacebook Platforminvalid_request不支持的帖子请求。 X-FB-Rev:386815 Set-Cookie:datr = iOPoTeHtN_Q9AO5Y4LpEXwyV; expires = Sun,2013年6月02日13:37:12 GMT; path = /; domain = .facebook.com; X-FB-Server:10.28.8.130 X-Cnection:close Date:Fri,03 Jun 2011 13:37:12 GMT Content-Length:79 {error:{type:GraphMethodException,message :不支持的帖子请求。}}

HTTP/1.1 400 Bad Request Cache-Control: no-store Content-Type: text/javascript; charset=UTF-8 Expires: Sat, 01 Jan 2000 00:00:00 GMT P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p" Pragma: no-cache WWW-Authenticate: OAuth "Facebook Platform" "invalid_request" "Unsupported post request." X-FB-Rev: 386815 Set-Cookie: datr=iOPoTeHtN_Q9AO5Y4LpEXwyV; expires=Sun, 02-Jun-2013 13:37:12 GMT; path=/; domain=.facebook.com; httponly X-FB-Server: 10.28.8.130 X-Cnection: close Date: Fri, 03 Jun 2011 13:37:12 GMT Content-Length: 79 {"error":{"type":"GraphMethodException","message":"Unsupported post request."}}

cURL 谢谢。

php代码

$APPID='14017XXXXXXXXXX';
$APPSECRET='7702362a5f6d605882f1beXXXXXXXXXX';
$action="https://graph.facebook.com/oauth/access_token?client_id=".$APPID."&client_secret=".$APPSECRET."&grant_type=client_credentials" ;
$ch = curl_init($action);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT , 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1');
$r=curl_exec($ch);
$access_token=substr($r,13);
//echo $access_token; // echo 14017XXXXXXXXXX|LdTccOQAcHWrT2RCwXXXXXXXXXX
curl_close($ch);    
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/search?access_token=".$access_token."&q=sashimi&limit=20&type=page&scope=publish_stream,offline_access,user_status,read_stream");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$body = curl_exec($ch);
curl_close($ch);
$status_list = json_decode($body,true);
foreach ($status_list['data'] as $status_list) {   
 echo $status_list['id'];
}

json树:

{
   "data": [
      {
         "name": "Sashimi",
         "category": "Food/beverages",
         "id": "61615549874"
      },
      {
         "name": "Sashimi",
         "category": "Restaurant/cafe",
         "id": "185314048174674"
      },
    ... ...  
   ],
   "paging": {
      "next": "https://graph.facebook.com/search?access_token=140174749371026|LdTccOQAcHWrT2RCwfVCqPVH0IY&q=SASHIMI&limit=20&type=page&scope=publish_stream\u00252Coffline_access\u00252Cuser_status\u00252Cread_stream&offset=20"
   }
}


推荐答案

你正在做一个post请求,但是对于搜索你需要做一个get请求。 Curl响应也显示。

The problem is you are doing a post request but for search you need to do a get request. Curl response also showing that.

{"error":{"type":"GraphMethodException","message":"Unsupported post request."}

只需删除 curl_setopt($ ch,CURLOPT_POST, 1); 。它会工作,它为我工作:)。

Just remove line curl_setopt($ch, CURLOPT_POST, 1);. It will work and it worked for me :).

这篇关于php cURL错误在facebook api的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆