ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Facebook – 获取个人资料图片php sdk

2019-07-17 18:29:31  阅读:137  来源: 互联网

标签:php facebook facebook-graph-api facebook-php-sdk


直到几个月前我才使用这种方法来获取用户的Facebook个人资料图片并且工作正常.

public function getUserProfilePic(){
   $access_token = $this->facebook_obj->getAccessToken();
   $user_id = $this->facebook_obj->getUser();
   $response = $this->facebook_obj->api(
      "/me/picture",
      "GET",
      array (
        'redirect' => false,
        'type'     => 'large'
      )
   );
   return (!empty($response['data']['url'])) ? $response['data']['url'] : 'images/default_profile.jpg';
}

但是由于新的PHP SDK我对这个方法有一些问题.如果我在我的应用程序的主菜单上找了5分钟而不是点击进入它调用此方法的页面我得到

“OAuthException : An active access token must be used to query information about the current user” error.

有什么想法吗?

解决方法:

我想,与新/旧SDK没什么关系.用户已注销,或者访问令牌已过期,或者您在会话中对用户的处理存在缺陷.

每当您尝试使用/ me进行呼叫但没有用户登录到应用程序时,就会发生此错误.

因此,在进行调用之前,您应始终验证当前用户,然后继续进行,例如:

$user_id = $this->facebook_obj->getUser();
if ($user_id) {
   try {
       $response = $this->facebook_obj->api(
           "/me/picture",
           "GET",
           array (
               'redirect' => false,
               'type'     => 'large'
           )
       );
   } catch (FacebookApiException $e) {
       error_log($e);
   }
}else {
   // redirect to Facebook login to get a fresh user access_token
   $loginUrl = $this->facebook_obj->getLoginUrl();
   header('Location: ' . $loginUrl);
}

编辑:

你不需要重定向:false并从json获取url.您可以直接使用url作为图像源:

https://graph.facebook.com/{user-id}/picture?type=large

而已!

标签:php,facebook,facebook-graph-api,facebook-php-sdk
来源: https://codeday.me/bug/20190717/1491138.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有