【问题标题】:How do I set the refresh token for Youtube API in php如何在 php 中设置 Youtube API 的刷新令牌
【发布时间】:2017-04-15 14:33:55
【问题描述】:

我使用 OAuth 游乐场获得了一个刷新令牌,但我不确定如何处理它。使用php示例代码上传视频,我添加了这行代码

$client->refreshToken($refreshToken);

这就是我需要做的一切吗?

【问题讨论】:

    标签: php youtube-api token youtube-data-api


    【解决方案1】:

    拥有 OAuth2 刷新令牌后,还需要几个步骤:

    定义从 Google 开发控制台获取的凭证文件的路径(也称为“client-secret”)并将其设置为 $client:

    $credentialsFilePath = "client_secret_file.json";    
    $client->setAuthConfig($credentialsFilePath);
    

    添加所需的范围(see here),该范围应与您收到刷新令牌时定义的范围相匹配(在第一个用户同意后),这是 Gmail 的范围示例:

    $client->addScope('https://mail.google.com/');
    

    设置您的刷新令牌(获取一个新令牌并将其设置为 $client):

    $refreshToken = "1/Je...................";
    $client->refreshToken($refreshToken);
    

    获取您的访问令牌(我喜欢将其存储在会话中):

    $_SESSION['access_token'] = $client->getAccessToken();
    

    开始调用 API:

    if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
        // API calls
    }
    

    使用 OAuth2 和刷新令牌的 Gmail 请求的完整代码: https://eval.in/776863

    【讨论】:

    • 使用代码示例,他们已经使用 $client->setClientSecret($OAUTH2_CLIENT_SECRET);和范围 $client->setScopes('googleapis.com/auth/youtube');以及所有其他访问令牌会话的东西。所以使用预先构建的代码,我只需要添加 $client->refreshToken($refreshToken);?
    • 给我看你的代码(不要在这里粘贴,使用 eval.in 或其他东西),我会尽力提供帮助
    • 没关系,我只需要在 oauth 操场上输入我的客户 ID 和密码,然后我就可以永久使用它
    • 是正确的。如果您的帐户有$refreshToken,则只需要$client->refreshToken($refreshToken);。您可以稍后尝试在条件if ($client->getAccessToken()) 中验证指令(其中包含调用 API 的代码)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 2022-08-16
    • 2021-06-13
    • 2021-09-07
    • 2012-04-10
    • 2017-08-11
    • 1970-01-01
    相关资源
    最近更新 更多