Php 拉维尔社交名流+;登录后进行API调用

Php 拉维尔社交名流+;登录后进行API调用,php,laravel,oauth,Php,Laravel,Oauth,Laravel 5、Socialite和google/apiclient软件包 源代码: 我有社交名媛在谷歌的用户登录方面做得很好 我正在尝试使用另一种方法进行API调用,以获取作为登录用户的日历事件。我一直在想在哪里用什么代币 我得到的错误是: “错误”:“无效的授权” “错误描述”:“代码已被兑换。” 我的方法: public function show($user_id) { $user = $this->user->find($user_id); $clie

Laravel 5、Socialite和google/apiclient软件包

源代码:

我有社交名媛在谷歌的用户登录方面做得很好

我正在尝试使用另一种方法进行API调用,以获取作为登录用户的日历事件。我一直在想在哪里用什么代币

我得到的错误是:

“错误”:“无效的授权”

“错误描述”:“代码已被兑换。”

我的方法:

public function show($user_id)
{
    $user = $this->user->find($user_id);

    $client = new Google_Client();
    $client->setClientId(env('GOOGLE_CLIENT_ID'));
    $client->setClientSecret(env('GOOGLE_CLIENT_SECRET'));
    $client->setRedirectUri(env('GOOGLE_CALLBACK_URL'));
    
    $client->authenticate($user->code);
    $service = new Google_Service_Calendar($client);

    $calendarId = $user->calendar_id;
    $optParams = array(
        'maxResults' => 5,
        'orderBy' => 'startTime',
        'singleEvents' => TRUE,
        'timeMin' => date('c'),
    );
    $results = $service->events->listEvents($calendarId, $optParams);
    $events = [];
    if (count($results->getItems()) > 0) {
        foreach ( $results->getItems() as $event ) {
            $events[] = $event;
        }
    }

    return view('users.calendar')->with('events', $events);
}
Laravel输出为:

OAuth2.php第127行中的Google_Auth_异常: 获取OAuth2访问令牌时出错,消息:“无效\u授权”

$用户代码看起来像:4/HFPZDROHYAEV3ASDFASDFDW72NXIL0RT2BOUPGJ7HM.UM5WPGCEASDFADFAFD1T6QXKMWI


任何指导都很好。谷歌指南让我一事无成。

日历使用的范围与社交登录不同。你必须再次请求许可。您可以查看的文档并在上试用


此外,谷歌还返回“代码已被兑换”。因为您已经有了一个访问令牌,可以使用您的代码访问用户的公共信息。

此时,您还没有通过身份验证吗?它说代码已经兑换,您已经有了访问令牌。是的,用户已经通过身份验证,我有Socialite获得的令牌,但我在尝试验证下一个API请求时出现“无效授权”错误(此方法)@Joe尝试通过撤销访问和重新验证刷新令牌。您可能还必须使用不同的作用域。默认情况下,社交名媛只使用少数几个范围,我相信个人资料和电子邮件。您必须根据Google API文档添加calendar或calendar.readonly作用域。