无法使用 Google Calendar Api v3 获取访问令牌

2023-12-02

我正在尝试将日历事件放入日历中,而无需身份验证提示。我读到,使用 OAuth 服务帐户可以让您执行此操作。我已经在我的 Google 开发者控制台中设置了服务帐户,但对此没有任何运气。

我们有一个 Google 企业帐户,我将我的委托用户设置为我们帐户的管理员,以便他们可以访问任何人的日历,但不会创建活动。我认为问题出在访问令牌上。当我var_dump($accessToken)表明NULL.

<?php
error_reporting(E_ALL);
require_once 'Google/Client.php';
require_once 'Google/Service/Calendar.php';
session_start();    

/* Authentication ID's */    
const CLIENT_ID = '[MY CLIENT ID]';
const SERVICE_ACCOUNT_NAME = '[MY SERVICE ACCOUNT]';
const KEY_FILE = '[MY KEY FILE].p12';
const CALENDAR_SCOPE = "https://www.googleapis.com/auth/calendar";
$key = file_get_contents(KEY_FILE);
$auth = new Google_Auth_AssertionCredentials(
  SERVICE_ACCOUNT_NAME,
  array(CALENDAR_SCOPE),
  $key
);
$auth->sub = "[email protected]";

$client = new Google_Client();
$client->setScopes(array(CALENDAR_SCOPE));
$client->setAssertionCredentials($auth);

$client->getAuth()->refreshTokenWithAssertion();
$accessToken = $client->getAccessToken();

$client->setClientId(CLIENT_ID);

$user = "[email protected]";

if($accessToken){

  $cal = new Google_Service_Calendar($client);

  $event = new Google_Service_Calendar_Event();
  $event->setSummary('TITLE');
  $event->setLocation('World');
  $event->setDescription('test');

  $start = new Google_Service_Calendar_EventDateTime();
  $start->setDate(date('yyyy-mm-dd'));
  $event->setStart($start);

  $end = new Google_Service_Calendar_EventDateTime();
  $end->setDate(date('yyyy-mm-dd'));
  $event->setEnd($end);

  $cal->events->insert($user, $event);
}
?>

我已经引用了另一个线程(使用服务帐户,getAccessToken() 返回 null)尝试解决此问题,但没有成功。

任何帮助将不胜感激!


听起来您需要授予对 google apps 域用户数据的访问权限。下面的链接位于“将域范围内的权限委托给您的服务帐户”部分。

https://developers.google.com/drive/web/delegation

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

无法使用 Google Calendar Api v3 获取访问令牌 的相关文章

  • 如何配置 nginx 重写规则以使 CakePHP 在 CentOS 上运行?

    大家好 请帮帮我 我正在尝试在运行 Nginx 和 Fact CGI 的 Centos 服务器上设置 cakephp 环境 我已经在服务器上运行了一个 WordPress 站点和一个 phpmyadmin 站点 因此我已经正确配置了 PHP
  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • 是否可以在 UML 中可视化一堆函数

    我正在改进一个使用类和函数文件 只是包含各种函数的 php 文件 的内容管理系统 例如 我有一堂课叫Admin以及一个功能文件 其功能包括显示管理员概述 创建新管理员 编辑现有管理员 删除管理员 函数文件使用类并执行 mvc 概念的可视化部
  • Facebook“赞”按钮回调帮助

    我正在使用此代码进行类似 facebook 的回调 问题是 如果我调用 php 脚本 例如 有人可以看到我的 javascript 并运行此页面 甚至可以向其发送垃圾邮件或在没有先点赞的情况下使用它 我的想法是 我想为每个喜欢该页面的用户提
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有
  • YUI压缩机或类似的PHP?

    我一直在我的测试服务器上使用 yuicompressor jar 来动态最小化已更改的 JavaScript 文件 现在我已经将网站部署到公共服务器上 我注意到服务器的策略禁止使用 exec 或其等效项 因此我不再执行 java 有没有一个
  • 转义用户数据,无需魔法引号

    我正在研究如何在来自外部世界的数据被用于应用程序控制 存储 逻辑等之前正确地对其进行转义 显然 随着 magic quote 指令在 php 5 3 0 中很快被弃用 并在 php6 中被删除 对于任何想要升级并进入新语言功能 同时维护遗留
  • 随机错误 symfony:ContextErrorException: 警告: simplexml_load_file(): I/O 警告: 无法加载外部实体

    在我的 Symfony 项目中 当我进入应用程序中的随机页面时 会出现以下随机错误 ContextErrorException Warning simplexml load file I O warning failed to load e
  • PHP 电子邮件验证[重复]

    这个问题在这里已经有答案了 For PHP最好的电子邮件验证方法是什么preg NOT ereg因为它是已弃用 删除 I don t需要检查该网站是否存在 这不像最高安全性 我找到了很多方法ereg但它们 显然 不是好的做法 我建议你使用F
  • 使用第三方库记录来自 PHP 应用程序的所有 cURL 请求

    好吧 我的 PHP Yii2 应用程序遇到了困难 我需要记录来自应用程序的每个传入和传出请求 传入的请求可以轻松地记录在 PHP 本身中 在引导阶段添加一些处理程序 这很容易 但真正的问题是我正在使用许多第三方库 即 Amazon MWS
  • 写入 xml 文件时允许的内存大小已耗尽(尝试分配 4459414 字节)[重复] 67108864 字节

    这个问题在这里已经有答案了 可能的重复 php 中允许的内存大小已耗尽 尝试分配 43148176 字节 33554432 字节 https stackoverflow com questions 415801 allowed memory
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 如何绕过Access-Control-Allow-Origin?

    我正在一个平台上对我自己的服务器进行ajax调用 他们设置了阻止这些ajax调用的平台 但我需要它从我的服务器获取数据以显示从我的服务器数据库检索到的数据 我的 ajax 脚本正在运行 它可以将数据发送到我的服务器的 php 脚本以允许其处
  • 如何从另一个数组值中过滤数组值并返回新数组? [复制]

    这个问题在这里已经有答案了 我有两个数组 all languages and taken languages 第一个包含所有语言 例如 200 种或其他语言 第二个包含之前选择的语言 从 0 到 200 种 我需要删除所有已采用的语言 ta
  • Yii 未检测到骆驼案例操作

    伊伊正在给我404 Error如果我声明这样的操作 站点控制器 php public function actionRegisterUser 这就是我在main php label gt Register User url gt site
  • PHP 中的异或加密

    我是 Xor 加密的新手 并且在使用以下代码时遇到了一些问题 function xor this string Let s define our key here key magic key Our plaintext ciphertext
  • 从检查元素隐藏 ''

    我有这个 HTML 和 PHP 联系表
  • 使用 Imagick 动态图像创建/Apache 标头

    在将现有的稳定网站转移到新服务器时 我遇到了一些使用 Imagick 动态创建图像的代码的间歇性问题 该代码解析 GET 查询 例如 example com image php ipid 750123 r 0 w 750 h 1000 然后
  • 使用 Webmin 设置 cron 作业

    我正在尝试使用 Webmin 设置一个 Cron 作业每 5 分钟运行一次 它需要定位 php 文件并运行该文件中的 php 脚本 当我在 命令 字段中输入文件路径时 它不起作用 我只是想知道我做错了什么 以及我需要 Cron 作业运行的文
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • Next.js 页面和 API 调用的不同 404 页面

    是否可以在 Next js 中配置两个不同的 404 页面 一个用于渲染页面 另一个用于 API 路由 我希望 API 调用的 404 页面以 JSON 格式返回 而所有其他页面则以 HTML 格式返回 是的 您只需在 api 页面路由下创
  • 服务器发送事件和asp经典

    我制作了一个 ASP 脚本 其中包含服务器发送事件所需的所有标头 客户端脚本正在运行 我用 PHP 脚本对其进行了测试 效果很好 ASP 脚本可以工作 如果您从 URL 行调用它 它会返回预期的消息 但当 javascript 调用它时 元
  • 在 matplotlib 中的单独图中绘制子图轴[重复]

    这个问题在这里已经有答案了 假设我有以下代码 修改版本matplotlib gridspec 教程 import matplotlib pyplot as plt def make ticklabels invisible fig for
  • 使用交叉验证 (CV) 计算 scikit-learn 多类 ROC 曲线

    我想用 ROC 曲线评估我的分类模型 我正在努力计算交叉验证数据集的多类 ROC 曲线 由于交叉验证 训练集和测试集没有划分 在下面 您可以看到我已经尝试过的代码 scaler StandardScaler with mean False
  • E/Web 控制台 (8272):在视图分页器中加载 Web 视图时,未捕获引用错误:函数名称未定义:1

    我正在尝试在视图寻呼机中加载网络视图 public View onCreateView LayoutInflater inflater ViewGroup container Bundle savedInstanceState View v
  • 我可以运行 ASPX 并 grep 结果而不发出 HTTP 请求吗?

    如何在没有 URL 和 HTTP 的情况下对一个简单的 ASP NET 文件进行函数调用 并捕获它生成的字节流 更多背景信息 我需要某种模板可以在里面放入一些逻辑 以呈现一些像文本文件一样的 INI 我放弃了那些从Java移植的库 并提出了
  • 将选项卡栏图标颜色从默认蓝色更改为

    我试图将选项卡栏图标颜色从默认的蓝色更改为红色 但收到此错误 程序中出现杂散 342 我在 void recolorItemsWithColor 以及实现部分收到错误 有办法解决这个错误吗 是否有另一种方法可以将标签栏图标从默认蓝色更改为其
  • 将弧度转换为度、分和秒

    我正在寻找一种将 C 语言中的小数转换为度数的方法 例如 C 语言中的 asin 函数返回一个十进制数 但我需要该数字以度 分 秒为单位 例如1 5 就是 1 30 0 The asin函数返回弧度 圆中有 2 弧度 圆有 360 度 一度
  • 如何使用 RavenDB 中的自定义 JSON.NET 转换器反序列化为动态 DLL 中的类型?

    我的 RavenDB 对象是根据动态加载的 DLL 中的类型创建的 我无法将 DLL 加载到当前的执行上下文中AppDomain 因此 JSON 反序列化器无法找到类型 我将如何使用定制转换器使用运行时加载的程序集中的类型 NB I tri
  • 如何创建一个动态相等实现,您可以在其中传递要比较的属性名称?

    假设我有一个具有以下属性的对象 Person public class Person public int ID get set public int EmployeeNo get set public string JobDescript
  • 矢量::插入分段错误

    我有一堂这样的课 classA public classA Here I am doing something but nothing related to vector void updateVec int idx int value H
  • 水平对齐三张图像(只能将它们垂直对齐)

    我似乎真的缺少一些关于如何使用 CSS 在屏幕上的一个块中水平排列三个图像的信息 我似乎只能将它们在页面上排成一长行 当我真的希望它们以水平线穿过屏幕时 我的 div 哪里做错了 或者也许我在 CSS 中被引入歧途 有任何想法吗 太感谢了
  • 为什么在 C++ 中输入 void main() 不好 [重复]

    这个问题在这里已经有答案了 可能的重复 void main 和 int main 之间的区别 Why is void main return void bad 有一天 我输入了此内容 有人向我指出这样做是错误的 我很困惑 我这样写已经有一段
  • 如何在顶点着色器中使用计时器来为 OpenGL 中的点大小设置动画

    我正在尝试实现一个点云 其中不同点的大小应根据与其相关的不确定性值而变化 比方说 如果这个值为零 则大小应该是恒定的 如果它接近 1 则这些点的半径应该变化得越来越大 首先 点的大小应该增加 并且在达到最大值后 它们应该减小直到最小值 依此
  • C++-单例类

    单例类可以被继承吗 如果是 那我们该怎么办呢 编辑 我的意思是说 如果我们有一个使用单例设计模式的类 那么它可以被继承吗 单例有私有构造函数 因此继承是不可能的 除此之外 单例具有实例化私有实例成员的静态方法 并且由于您无法覆盖静态方法 因
  • Python 中带有键的 sort_values()

    我有一个数据框 其中列名称是时间 0 00 0 10 0 20 23 50 现在 它们按字符串顺序排序 因此 0 00 是第一个 9 50 是最后一个 但我想在时间之后对它们进行排序 所以 0 00 是第一个 23 50 是最后一个 If
  • 正则表达式捕获组 swift

    我在字符串中有一个正则表达式搜索方法 extension String func searchRegex regex String gt Array
  • 旋转后恢复倒计时

    我有一个从 60 秒开始倒计时的倒计时器 这个倒计时器通过将文本视图设置为剩余毫秒来工作 但是每当我旋转设备时 倒计时器就会重置 我知道发生这种情况是因为活动会轮流重新启动 因此 我尝试将剩余的时间保存在捆绑包中 然后在活动重新启动后恢复它
  • 使用 SQL 查询查找订购 > x 种产品的客户的详细信息

    请注意 我见过类似的查询here 但认为我的查询足够不同 值得提出一个单独的问题 假设有一个包含以下表的数据库 customer table 包含 customer ID 关键字段 customer name 包含 order ID 关键字
  • 无法使用 Google Calendar Api v3 获取访问令牌

    我正在尝试将日历事件放入日历中 而无需身份验证提示 我读到 使用 OAuth 服务帐户可以让您执行此操作 我已经在我的 Google 开发者控制台中设置了服务帐户 但对此没有任何运气 我们有一个 Google 企业帐户 我将我的委托用户设置