YouTube API v3 每次都不断请求授权

2023-11-23

我正在使用 YouTube api v3 来检索视频列表,示例如下:https://developers.google.com/youtube/v3/code_samples/php#retrieve_my_uploads

我打开页面,应用程序要求授权。我点击链接进行授权,选择我的 Gmail 帐户,然后我就得到了列表。

问题是,当我返回应用程序时,即使只是几秒钟后,我也必须再次授权该应用程序。

我认为一旦应用程序获得授权,您就可以将令牌交换为刷新令牌。

是否有任何地方显示一些代码如何获取刷新令牌,因为文档或在线对其的任何引用都非常差。

我真的需要一些帮助才能让这个工作正常进行,因为我过去几周一直在努力但一无所获。


我有一个冗长的答案,但应该有很大的帮助。我对糟糕的文档也有同样的问题,我还试图从我的项目的播放列表中获取视频列表。在过去几天的挣扎之后,API v3 神奇地开始为我工作,这就是我所做的。

首先是实际获取 API 密钥。我确信您现在已经进入了 Google 开发者控制台,但为了以防万一,以下是此步骤的操作:

  1. 在 Google Developers Console 中创建项目
  2. 启用 YouTube 数据 API v3 API
  3. 在“凭据”下,如果您遇到与我相同的问题,您可以创建新的客户端 ID,但不能创建 API 密钥。

这是一个主要问题,因为您需要 API 密钥才能在未经授权的情况下发出简单的数据请求,例如从播放列表中获取视频列表。要获取 API 密钥,请返回“API”部分,单击“YouTube Data API v3”,这里是带有加载指示器的屏幕,该指示器从不加载任何内容。但是,您可以单击此处的“配额”,它将带您进入旧版本的开发人员控制台。

从这个旧版本开始,您可以转到“API 访问”并添加您的简单的API访问密钥(API 密钥适用于旧版本,但不适用于新版本的开发者控制台)。我可能是错的,但我认为“创建新的服务器密钥...”适用于 PHP 等服务器端语言,而“创建新的浏览器密钥...”适用于 Javascript 等客户端语言。还有 Android 和 iOS 键的按钮,但我认为您不需要这些。无论如何,我在 PHP 中使用 cURL,并且服务器密钥对我有用,我将其设置为允许任何引荐来源网址,而我的项目仍在开发中。

一旦你得到你的服务器应用程序的密钥 under 简单的API访问,使用该密钥的任何请求可能需要一段时间才能真正起作用。对我来说,我的脚本在大约 4-5 小时内无法工作(我认为 Google 这周的服务器确实出现了问题,这也是为什么我不得不“欺骗”它给我一个 API 密钥。这可能是为什么“凭据”页面不加载任何内容)。

现在使用该工具https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlists.list帮助创建您的 GET 请求。在中输入“片段”part字段和一个整数最大结果如果需要的话。然后从 Youtube 上的 URL 获取播放列表的 ID。例如柯南的《无能玩家》系列就是https://www.youtube.com/playlist?list=PLVL8S3lUHf0RqD7TZ6hohWk8Sd3asaqnY,所以 ID 为PLVL8S3lUHf0RqD7TZ6hohWk8Sd3asaqnY。然后点击Execute.

现在它会给你 GET 请求,类似

GET https://www.googleapis.com/youtube/v3/playlists?part=snippet&id=PLVL8S3lUHf0RqD7TZ6hohWk8Sd3asaqnY&maxResults=20&key={YOUR_API_KEY}

X-JavaScript-User-Agent:  Google APIs Explorer

只需将 GET 一词后面的 URL 替换为您的 API 密钥即可。

现在您可以在 cURL 请求中使用此 URL,如下所示,其中$request_url是上面的 URL,其中包含您的 API 密钥:

//http://codular.com/curl-with-php
// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $request_url,
    CURLOPT_USERAGENT => 'Codular Sample cURL Request'
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);

Now $resp将保存一个 JSON 字符串,您可以解析该字符串并获取该播放列表视频的数据。我将把 JSON 解析留给你,但这就是你获取与旧数据类似的数据的方式gdatav2 中的方式。而且没有认证:)

它可能会报告错误,指出您的 API 密钥未经授权,在这种情况下您需要等待几个小时。再说一遍,我认为 Google 最近确实遇到了服务器问题,所以请耐心等待;这不是你的脚本不起作用,而是 Google ;)

我会注意到

$resp = file_get_contents($request_url);

似乎也有效,但老实说我不知道​​ cURL 和 file_get_contents() 之间哪种方法“更好”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YouTube API v3 每次都不断请求授权 的相关文章

  • 通过 Sparkpost 发送 iCal 邀请

    我正在尝试使用 SparkPost 通过电子邮件以附件形式发送日历邀请 但收到电子邮件后邀请不会打开 我使用两个文件 calendarinvite php 来创建邀请 使用 Sendemail php 来发送电子邮件 calendarinv
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia
  • 正则表达式上的换行符

    我试图替换两个标签之间的所有内容 但我无法构建正确的表达式 这就是我所做的
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • 选择一组数字以达到最小总数的算法

    给定 一组数字n 1 n 2 n 3 n x 还有一个数字M 我想找到最好的组合 n a n b n c n gt M 该组合应达到达到或超过 M 所需的最小值 没有其他组合可以提供更好的结果 将在 PHP 中执行此操作 因此可以使用 PH
  • 防止 Propel 插入空字符串

    当未设置列时 如何防止 Propel ORM 插入空字符串 CREATE TABLE user uid INTEGER PRIMARY KEY AUTO INCREMENT email VARCHAR 255 NOT NULL UNIQUE
  • 简单的 PHP 回显代码不起作用

    这是我的 html 和 php 脚本 h1 Bob s Auto Parts h1 table width 100 tr tr table 为什么这个输出会出现一个 gt 我希望它是 这有效 仅有的 这是输出 鲍勃的汽车零件 鲍勃
  • 尝试使用 php 发送 POST 请求,无论我做什么,我都会收到“HTTP ERROR 500”

    为了发出 HTTP 请求 有人建议我尝试使用 PHP 并给了我一段代码 url https example com dashboard api data array to gt PHONE NUMBER from gt SENDER ID
  • php源代码到PO文件生成器

    我必须将我的所有回显 打印字符串转换为PHP源代码代码文件到PO file 为了语言翻译 有批次吗对流器可用于相同的 我如何做到这一点 make gettext在您的服务器上运行 setup a 翻译适配器 例如带有 gettext 适配器
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 媒体的 Google Cloud Storage 签名网址

    我已经建立了一个视频网站 为用户提供 m3u8 和关联的 ts 文件 我不希望媒体文件免费可用 所以我所做的是 当用户在网站上时 在 mysql 中使用他们的 IP 和令牌创建一个会话 当他们请求特定媒体子域 mp4 domain com
  • 未传递“client_reference_id”参数

    我使用 Stripe Checkout Stripe 版本 2016 07 06 我想通过参数 client reference id 恢复个性化数据 但在 JSON 中 当我有金额或电子邮件时 我找不到它 我是在测试环境中 你能帮我吗 先
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • PHP 扩展开发入门 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请推荐有关 PHP 低 级 modules 编程接口的帮助文章或教程 搜索我的书签 我发现的唯一链接是
  • 使用 json_encode() 函数在 PHP 数组中生成 JSON 键值对

    我正在尝试以特定语法获取 JSON 输出 这是我的代码 ss array 1 jpg 2 jpg dates array eu gt 59 99 us gt 39 99 array1 array name gt game1 publishe
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • 如何将 Smarty 3 包含到 Laravel 4 中?

    我是 Laravel 的新手 所以仍在习惯这些概念 但是我有大约 10 年的使用 Smarty 的经验 所以我希望利用这一点 除了事实上 Blade 似乎缺乏太多我发现有用且在 Smarty 中开箱即用的功能 但无论如何除了这个问题的要点之
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • JavaScript 中的双感叹号运算符和 Boolean() 有什么区别? [复制]

    这个问题在这里已经有答案了 我知道 variable将变量转换为布尔值和函数Boolean 根据 ecma262 规范 还将通过调用执行类型转换ToBoolean value 我的问题是 有什么区别 是 性能比 Boolean 更好 它们是
  • 我是否必须在每个页面添加“<%@ Register assembly=”?

    我升级了 DevExpress 组件 但在我的应用程序中我必须更改每个组件 是的 看http we
  • C# 中的静态类

    在回答这个问题时 https stackoverflow com questions 352317 c coding question 352327 这让我想知道 将静态类视为等同于实现单例模式的非静态类实例是否存在任何危险 对我来说唯一显
  • 控件的自定义设计器

    我有一个派生自 SplitContainer 的自定义类 namespace Builder Components public partial class ProjectSidebar SplitContainer public Proj
  • 获取画布中的鼠标位置[重复]

    这个问题在这里已经有答案了 有没有办法获得鼠标的位置
  • C 中的完美数

    我需要编写一个 C 程序来找到完美数 main int n 1000 sum 0 for int num 1 num lt n num sum 0 for int i 1 i lt num i if num i sum i if sum n
  • 如何在 Windows 中的 git-bash 中执行位于带空格的文件夹(即“Program Files”)中的命令?

    当我使用 git bash 时 我有时想调用我的命令 PATH 实际上在我的 PATH 但如果 该命令位于包含空格的文件夹中的某个位置 则它将无法运行 例如 如果程序打开C Program Files whatever aCmd exe我输
  • 动态增加java堆空间

    我编写了一个 java 程序 用于测试具有不同数量处理器的不同机器上的几个多线程算法的速度 在某些机器上 合并排序 会失败 因为它需要相当大的堆空间才能处理非常大的数组 我可以在运行程序之前轻松地自己更改 java 堆空间 但我觉得更健壮且
  • 泛型类的类对象(java)

    java中有没有一种方法可以获取类似的实例Class
  • 如何在 Java Swing 中创建窗口关闭处理程序

    我试图在我的窗口 使用 Java Swing 创建的 关闭时调用一个函数来进行清理 在我的初始化代码中我这样做 public class FormLogin extends JFrame private void initComponent
  • 为什么@RequestMapping注解在java中接受String参数,但在scala中不接受?

    阅读 RequestMapping文档 http static springsource org spring docs 2 5 x api org springframework web bind annotation RequestMa
  • Eclipse 内容辅助错误

    最近 我在 Eclipse 中的内容辅助方面遇到了越来越多的问题 在我的一些项目中 我没有从内容协助中得到任何建议 而在其他项目中 我得到了部分或全部预期的建议 通常 Eclipse 中不会出现 错误 但下面是我收到错误时的一个示例 内容辅
  • Pandas - 根据条件重复行

    如果该行满足条件 我试图创建一个重复的行 在下表中 我根据 groupby 创建了累积计数 然后对 groupby 的 MAX 进行了另一个计算 df PathID df groupby DateCompleted cumcount 1 d
  • 如何使用运行时定义的比较器定义有序映射/集?

    这类似于如何将自定义比较器函数与 BTreeSet 一起使用 但是就我而言 直到运行时我才会知道排序标准 可能的标准很广泛并且不能被硬编码 想想像按到目标的距离排序 or 按有效负载中的特定字节排序或其组合 创建地图 集合后 排序标准不会更
  • Chrome 丢失 cookie

    我的实时网站上出现错误 但我在开发环境中没有看到该错误 而且似乎只在 Chrome 中发生 我四处寻找解决方案 发现仅与 Auth cookie 有关的问题 实际上我过去提出过关于 chrome 和 auth cookie 的问题 但这是不
  • ARKit – 使用世界光线而不是屏幕点进行光线投射

    我想实现类似的目标ARCore的光线投射方法它采用世界空间坐标中的任意射线而不是屏幕空间点 List
  • json 字符串可以包含 HTML 标签吗?

    考虑这是我的 json 字符串 Mat id 2 Mat Name Steel Measurement mm Description Steel 我可以像这样在这个 json 字符串中添加 HTML 标签吗 Mat id 2 Mat Nam
  • 过早优化的实用规则[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 看来这句话 过早的优化 是
  • RMarkdown PDF“LaTeX3 错误:错误变量”

    我已经通过 RMarkdown 创建 PDF 报告几个月了 但是今天在新机器上安装 MikTex R 以及 rmarkdown 和 tidyverse 软件包后 我在尝试编织 PDF 时收到以下错误消息 C PROGRA 2 Pandoc
  • YouTube API v3 每次都不断请求授权

    我正在使用 YouTube api v3 来检索视频列表 示例如下 https developers google com youtube v3 code samples php retrieve my uploads 我打开页面 应用程序