Gmail API:如何获取访问令牌?

2023-12-21

我正在测试邮箱API https://developers.google.com/gmail/api/.

到目前为止我已经做了以下事情:

  • 我已经在中创建了该项目谷歌开发者控制台 https://console.developers.google.com/project?authuser=0
  • 我已经启用了Gmail API.
  • 我创建了一个新的Client IDclient secret.
  • 在我的 PHP 脚本中,我安装了 PHP 客户端库并遵循 这PHP 设置说明 https://developers.google.com/gmail/api/quickstart/php.

所以现在当我运行文件quickstart.php 时它会给出一个链接。当我打开它时,会出现一个授权页面,我可以在其中授权我的应用程序访问 Gmail API。

然后它重定向到我在设置中声明的重定向 URI(添加代码参数)。

在地址栏中,它显示如下:

http://localhost/main/gmail_callback?code=MY_CODE http://localhost/main/gmail_callback?code=MY_CODE

Where main是我的控制器并且gmail_callback到目前为止还只是一个空白函数。

它应该是正确的,因为这些是我的设置:

  • JavaScript 的起源:http://localhost
  • 重定向 URI:http://localhost/main/gmail_callback

接下来我该怎么办?


该流程的下一步是将授权代码交换为访问令牌(如果您请求离线访问,则还包括刷新令牌)。如果您使用https://developers.google.com/oauthplayground/ https://developers.google.com/oauthplayground/要手动执行流程,您将能够看到涉及的 URL。有一个 php 库调用可以做同样的事情,但我个人更喜欢发送我自己的 HTTP 而不是使用库。即使您确实使用了库,仍然值得花一点时间来了解 HTTP 流程,以便您可以更轻松地调试遇到的任何问题。

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

Gmail API:如何获取访问令牌? 的相关文章

  • Laravel 从 5.6 升级到 Laravel 6

    我有一个项目https github com javedbaloch4 Laravel Booking https github com javedbaloch4 Laravel Booking发展于Laravel 5 6现在我想将其升级到
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • 查找使用 gmail api 检索到的环聊和聊天消息的时间戳

    在摆弄 Gmail API 时 我注意到如果不使用任何过滤器 用户 消息 列表 https developers google com gmail api v1 reference users messages list方法还返回通过 Go
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • 如何使用 php 下载/打印页面的特定部分

    我有一个 HTML 页面如下 Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the indust
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • PHP 脚本可以在终端中运行,但不能在浏览器中运行

    我正在尝试执行exec命令 但我遇到了问题 当我运行以下代码时 当我通过浏览器运行它时它不起作用 但如果我把输出 str将其复制并粘贴到终端中 它工作得很好 造成这种情况的原因是什么 我该如何解决 目前我正在运行localhost php
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • 表单提交后如何保留选择字段中的选定值?

    我有一个用于将票证上传到数据库的主页 我有一个选择字段 我想保留用户在提交表单之前选择的值 但它没有发生 这是我选择字段的代码
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • 使用正则表达式提取两个短语之间的所有单词[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下正则表达式提取两个短语之间的所有单词 b item W w W 0 2 1 one W w W 0 3 business b b item W w W 0 2 3 three W w W 0 3
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一

随机推荐

  • Firebase 托管自定义域错误

    我最近获得了一个 tk 域名 并愿意将其作为自定义域名链接到 Firebase 托管 阅读文档并遵循教程后 我成功地将我的第一个应用程序部署到 Firebase 托管 可通过默认的 firebaseapp com url 访问它 但是 在尝
  • ASP.net 会员添加自定义列

    在我的母版页中 我有 MembershipUser thisUser Membership GetUser loggedInUserID thisUser ProviderUserKey ToString thisUser让我可以访问所有字
  • ionic 3 深度链接用于重置密码

    我正在使用 ionic 3 创建一个移动应用程序 我需要知道实现重置密码功能的逻辑 到目前为止 我可以向用户发送一封带有重置令牌的电子邮件 我在想 id 用户点击电子邮件中的链接 如果安装了应用程序 那么它应该打开专用于重置密码的应用程序页
  • 如何将轴标题的部分(一个或两个单词)设置为斜体

    有没有办法改变轴标题部分的样式 同时保持其余部分不变 就我而言 我怎样才能斜体y 轴标题中的 细菌 X 据我所知 该命令theme axis title y element text face italic 只能改变整个y轴标题 是吗 gg
  • Openerp 7 到 Odoo 8 - 如何转换数据库

    我正在尝试将 openerp7 迁移到 odoo 8 您知道如何将数据库版本 7 转换为较新的版本 8 吗 谢谢 选项1 要求odoo公 司做开放升级 https upgrade odoo com database upload通过有效的合
  • Ruby 浮点乘法的奇怪问题

    有人在 ruby 中解决这个问题吗 假设我们有 a 8 1999999 我们想将其四舍五入到小数点后两位 即 8 20 然后乘以 1 000 000 得到 8 200 000 我们这样做 a round 2 1000000 to i 但是我
  • NSString 长度和保留计数。需要澄清

    根据以下代码 请指教 NSString str NSString alloc initWithString Hello world NSLog Length lu n str length 11 NSLog Retain count is
  • numpy 负索引 a[:-0]

    我想使用数组切片来修剪我的数组 IE a trimmed a trim left trim right 这太棒了 除非trim right是 0 我得到a trim left 0 这是一个空数组 我想我可以 a trim left a sh
  • TransformClassesWithDesugarForDebug 出错

    我在编译 APK 调试或发布 时遇到问题 Android Studio 3 0 Beta 5 这是我的构建 gradle app buildscript repositories maven url https maven fabric i
  • Sql Server 中的按位与

    我有一个非常典型的情况 我们有一个名为 Users 的表 其中有一列名为 Branches varchar 1000 该组织可以有 1000 个分支机构 因此 如果用户有权访问分支 1 5 和 10 则分支字符串将如下所示 10001000
  • 为 JavaScript 代码创建循环[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想为以下 js 代码创建一个循环
  • 主键身份值因唯一键约束违规而增加

    我有一个 Sql Server 2008 表 其中有一个主键 Identity Yes 和构成唯一键约束的其他三个字段 此外 我有一个存储过程 用于将记录插入表中 并使用 SqlConnection 对象通过 C 调用存储过程 C 存储过程
  • 如何更新 Angular Array 中的现有项目(已从外部更改)?

    我是 Angular 新手 正在努力更新 Angular 数组中已从外部更改 不是通过 Angular 支持的 UI 的现有项目 这是用例 我的网页是通过服务器端调用填充的 我将数组加载到 Angular 中并显示在列表上 现在 如果服务器
  • 采访中的任务。我们该如何解决呢?

    以这种方式转换字符串 let initialString atttbcdddd result must be like this at3bcd4 但重复次数必须大于2 例如 如果我们有 aa 结果将是 aa 但如果我们有 aaa 结果将是
  • 使用模式中的数组复制到 postgres 中?

    我正在使用 Ruby Rails Postgres 我的表看起来像这样 架构方面 CREATE TABLE my table name my num double precision NOT NULL my string arr chara
  • BST 中的第二个最大值

    这是一道面试题 找到 BST 中的第二个最大值 最大元素是 BST 中最右边的叶子 第二个最大值是其父级或其左子级 所以解决方案是遍历 BST 找到最右边的叶子并检查其父节点和左子节点 是否有意义 不 那是错误的 考虑这个 BST 137
  •  内容不收缩的 Flex 项目[重复]                
                

    这个问题在这里已经有答案了 我有一个需要握住的布局
  • 手动安装 Ruby 1.8.7(和其他东西)

    我不想再依赖一键安装程序 我想学习如何手动安装 Ruby 有这方面的资源吗 在此处下载 Ruby 1 8 7 的 Windows 二进制文件 http www ruby lang org en downloads http www ruby
  • 关于多核CPU的x86 LOCK问题

    当执行 LOCK 后面的指令时 x86 ASM LOCK 命令前缀是否会导致所有内核冻结 我在一篇博客文章中读到了这一点 但它没有意义 我找不到任何东西表明这是否属实 这是关于锁定该地址的内存总线 Intel 64 和 IA 32 架构软件
  • Gmail API:如何获取访问令牌?

    我正在测试邮箱API https developers google com gmail api 到目前为止我已经做了以下事情 我已经在中创建了该项目谷歌开发者控制台 https console developers google com