加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何通过curl获取facebook令牌代码?

发布时间:2020-12-13 21:43:00 所属栏目:PHP教程 来源:网络整理
导读:我尝试使用easy curl来获取facebook代码和access_token通过curl.这样我就可以将信息发布到我的墙上.我知道sdk,但如果我只使用简单的卷曲方式? 一些故障归还: 方法未实施 请求中的方法无效 这是我的代码.顺便说一句:如果在1小时内仍然有效,如何记住access_
我尝试使用easy curl来获取facebook代码和access_token通过curl.这样我就可以将信息发布到我的墙上.我知道sdk,但如果我只使用简单的卷曲方式?

一些故障归还:

方法未实施

请求中的方法无效

这是我的代码.顺便说一句:如果在1小时内仍然有效,如何记住access_token?谢谢.

$code_url = "https://graph.facebook.com/oauth/authorize?client_id=".$app_id."&redirect_uri=".urlencode($canvas_page_url)."&type=client_cred&display=page&scope=user_photos,publish_stream,read_stream,user_likes";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$code_url);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_HEADER,CURLOPT_RETURNTRANSFER,1);
$fb_code = curl_exec($ch); // get code
curl_close($ch);

$token_url = "https://graph.facebook.com/oauth/access_token?client_id=".$app_id."&client_secret=".$app_secret."&redirect_uri=".urlencode($canvas_page_url)."&code=".$fb_code."";
$curl = curl_init();
curl_setopt($curl,$token_url);
curl_setopt($curl,0);
curl_setopt($curl,1);
curl_setopt($curl,1);
$result = curl_exec($curl);
curl_close($curl); 
echo $result; //get token for post to wall

编辑:

$app_id = "14XXXXXXXX";
   $app_secret = "77XXXXXXXXXXXXXXXXXXXXXXX";
   function get_app_access_token($app_id,$secret) {
    $url = 'https://graph.facebook.com/oauth/access_token';
    $token_params = array(
        "type" => "client_cred","client_id" => $app_id,"client_secret" => $app_secret
        );
    return str_replace('access_token=','',post_url($url,$token_params));
  }
  $token = get_app_access_token($app_id,$app_secret);
  echo $token;

解决方法

尝试使用这些辅助方法,这些方法将对图API进行cURL调用并返回应用程序access_token.

此函数接受一个url和一组参数,并通过cURL进行POST:

function post_url($url,$params) {
    $ch = curl_init();
    curl_setopt($ch,$url);
    curl_setopt($ch,1);
    curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($params,null,'&'));
    $ret = curl_exec($ch);
    curl_close($ch);
    return $ret;
  }

此功能会获取developer app中提供的应用ID和密码,并为您的应用返回有效的access_token:

function get_app_access_token($app_id,"client_secret" => $secret
        );
    return str_replace('access_token=',$token_params));
  }

您可以调用方法,如$token = get_app_access_token(‘APP_ID’,’SEKRET’);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读