我正在尝试获取用户访问 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/