php - 在 Laravel 5.4 上使用社交名流检索 Facebook 用户访问 token

标签 php facebook laravel facebook-graph-api laravel-socialite

我正在尝试获取用户访问 token ,以便我可以通过 Guzzle 向 Facebook 的 Graph API 发送 CURL 请求,以获取正在使用该应用程序的用户好友。但我似乎无法获得它。 这是我的 Controller :

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;
use Socialite;

class SocialFriendsController extends Controller
{

    public function getFacebookFriends()
    {

    $user = Socialite::driver('facebook')->user();
    $access_token = $user->token;

    $client = new Client();
    $body = $client->get('https://graph.facebook.com/v2.11/me/friends', [
        'query' => [
            'access_token' => '$access_token',
        ]
    ])->getBody();

        $result = \GuzzleHttp\json_decode($body, 1);
    return view('pages.admin.posts.create', ['result' => $result]);
   }

}

最佳答案

按照前面的答案修复对 $access_token 的引用后,您可以使用 facebook SDK 执行以下步骤,从 Facebook 检索长期有效的 token ,以便您可以多次调用API。默认身份验证 token 将有效 2 小时,之后您需要重新启动 oAuth 流程才能获取新 token 。长期 token 可以让您获得 2 个月的访问权限,然后才需要再次进行 oAuth。 https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension

$facebook = new \Facebook\Facebook();
$client = $facebook->getOAuth2Client();
$twoMonthToken = $client->getLongLivedAccessToken($twoHourToken);

使用 $twoMonthToken 更新用户

关于php - 在 Laravel 5.4 上使用社交名流检索 Facebook 用户访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48350764/

相关文章:

php - 警告 : couldn't fetch mysqli_result in . .. 使用 $_SESSION 的结果集

php - 虽然循环 : Works, 但也循环 HTML 并输出两次(一次反向?)

ios - 在我的应用程序中检测 Twitter 和 Facebook 通知

java - Facebook:在 friend 的墙上张贴照片

php - 如何将动态变量发送到部分页面 "sidebar"?

搜索时未找到 Laravel 数据表列

php - 将数据库中的值插入输入框中

php - firefox , IE6 和 opera 有不同的表现

ios - 当用户在“设置”>“Facebook”中拥有帐户时,FBLoginView 崩溃

php - Laravel 错误 - 未知 : Failed opening required '. ./public' (include_path ='.;C:\php\pear\' ) in Unknown on line 0