使用PHP客户端设置Google Calendar API的推送通知

维克马尔霍特拉

我想为Google Calendar API设置推送通知,每当Google Calendar API上的特定资源发生变化时,我的服务器就会收到通知。我想使用PHPGoogle API客户端库来执行此操作

但似乎他们没有方法在PHP库中查看Google日历资源。也许其他库也有一种watch方法,但是我对此不太确定。

基本上,要为特定资源设置推送通知,您必须将发布请求发送到这样的URL ...

POST https://www.googleapis.com/calendar/v3/calendars/[email protected]/events/watch
Authorization: Bearer auth_token_for_current_user
Content-Type: application/json

{
  "id": "01234567-89ab-cdef-0123456789ab", // Your channel ID.
  "type": "web_hook",
  "address": "https://mydomain.com/notifications" // Your receiving URL.
}

我可以使用PHP中的curl轻松地做到这一点,但是我的问题是该请求未获得Google OAuth令牌的授权,因此会导致错误。

我想知道是否有解决此问题的方法。

更新

我试图在不添加适当标题的情况下将连接发送给Google,因此出现授权错误。更正了该部分后,我仍然遇到Invalid Credentials错误。这是我的片段的样子...

    $url = sprintf("https://www.googleapis.com/calendar/v3/calendars/%s/events/watch", $calendar);

    /* setup the POST parameters */
    $fields = array(
        'id'        => "some_unique_key",
        'type'      => "web_hook",
        'address'   => sprintf("http://%s//event_status/update_google_events", $_SERVER['SERVER_NAME'])
        );

    /* convert the POST parameters to URL query */
    $fields_string = '';
    foreach ($fields as $key => $value) {
        $fields_string .= sprintf("%s=%s&", $key, $value);
    }
    rtrim($fields_string, '&');

    /* setup POST headers */
    $headers[] = 'Content-Type: application/json';
    $headers[] = 'Authorization: OAuth ' . $access_token;

    /* send POST request */
    $channel = curl_init();
    curl_setopt($channel, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($channel, CURLOPT_URL, $url);
    curl_setopt($channel, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($channel, CURLOPT_POST, true);
    curl_setopt($channel, CURLOPT_POSTFIELDS, $fields_string);
    curl_setopt($channel, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($channel, CURLOPT_TIMEOUT, 3);
    $response = curl_exec($channel);
    curl_close($channel);

    error_log($response);
维克马尔霍特拉

这是我解决问题的方法。我在Google游乐场闲逛了一下,以弄清自己在做错什么

我所做的就是

基本上只是遵循Google的文档来设置推送通知

$url = sprintf("https://www.googleapis.com/calendar/v3/calendars/%s/events/watch", $calendar);

/* setup the POST parameters */
$fields = json_encode(array(
    'id'        => "some_unique_key",
    'type'      => "web_hook",
    'address'   => sprintf("http://%s//event_status/update_google_events", $_SERVER['SERVER_NAME'])
    ));

/* setup POST headers */
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: Bearer ' . $access_token;

/* send POST request */
$channel = curl_init();
curl_setopt($channel, CURLOPT_HTTPHEADER, $headers);
curl_setopt($channel, CURLOPT_URL, $url);
curl_setopt($channel, CURLOPT_RETURNTRANSFER, true);
curl_setopt($channel, CURLOPT_POST, true);
curl_setopt($channel, CURLOPT_POSTFIELDS, $fields);
curl_setopt($channel, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($channel, CURLOPT_TIMEOUT, 3);
$response = curl_exec($channel);
curl_close($channel);

error_log($response);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用PHP API客户端检索我公司的Google Calendar Resources?

来自分类Dev

在面向.NET 3.5的Winforms上使用Google Calendar API客户端库v3?

来自分类Dev

使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

来自分类Dev

使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

来自分类Dev

使用Java客户端库从Google Calendar API v3查询事件?

来自分类Dev

Google Calendar API PHP通知到期值

来自分类Dev

从Google Calendar API v2迁移到v3-客户端授权

来自分类Dev

带有insert_calendar方法的Google api ruby客户端问题

来自分类Dev

设置Google Calendar API

来自分类Dev

使用Api使用推送通知

来自分类Dev

Google API PHP客户端授权

来自分类Dev

Google Calendar API v3的Python客户端库插入事件引发“缺少结束时间”错误

来自分类Dev

获取资源/房间的Google API推送通知

来自分类Dev

收到Google Calendar API通知时出现403错误

来自分类Dev

Google Calendar API-PHP

来自分类Dev

Google Calendar API和php

来自分类Dev

将Signalr与Web API集成以将通知推送到客户端

来自分类Dev

如何设置Google API用户使用服务帐户(Ruby客户端)进行模拟?

来自分类Dev

Google Calendar API使用限制

来自分类Dev

如何使用客户端API设置p:selectOneRadio的值?

来自分类Dev

(400)使用Google API PHP客户端和管理SDK的错误请求

来自分类Dev

无法使用Google PHP API客户端库更新用户信息

来自分类Dev

不断从Google API获取“ 403禁止访问”(使用PHP客户端库v1)

来自分类Dev

使用执行API PHP客户端创建文档时出现Google Apps脚本错误

来自分类Dev

使用Google Analytics API PHP客户端查询多个指标

来自分类Dev

Google API PHP客户端-联系人服务

来自分类Dev

Google Api客户端PHP-mkdir():权限被拒绝

来自分类Dev

PHP Google API客户端缓存访问令牌

来自分类Dev

Google API PHP客户端和合作伙伴

Related 相关文章

  1. 1

    如何使用PHP API客户端检索我公司的Google Calendar Resources?

  2. 2

    在面向.NET 3.5的Winforms上使用Google Calendar API客户端库v3?

  3. 3

    使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

  4. 4

    使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

  5. 5

    使用Java客户端库从Google Calendar API v3查询事件?

  6. 6

    Google Calendar API PHP通知到期值

  7. 7

    从Google Calendar API v2迁移到v3-客户端授权

  8. 8

    带有insert_calendar方法的Google api ruby客户端问题

  9. 9

    设置Google Calendar API

  10. 10

    使用Api使用推送通知

  11. 11

    Google API PHP客户端授权

  12. 12

    Google Calendar API v3的Python客户端库插入事件引发“缺少结束时间”错误

  13. 13

    获取资源/房间的Google API推送通知

  14. 14

    收到Google Calendar API通知时出现403错误

  15. 15

    Google Calendar API-PHP

  16. 16

    Google Calendar API和php

  17. 17

    将Signalr与Web API集成以将通知推送到客户端

  18. 18

    如何设置Google API用户使用服务帐户(Ruby客户端)进行模拟?

  19. 19

    Google Calendar API使用限制

  20. 20

    如何使用客户端API设置p:selectOneRadio的值?

  21. 21

    (400)使用Google API PHP客户端和管理SDK的错误请求

  22. 22

    无法使用Google PHP API客户端库更新用户信息

  23. 23

    不断从Google API获取“ 403禁止访问”(使用PHP客户端库v1)

  24. 24

    使用执行API PHP客户端创建文档时出现Google Apps脚本错误

  25. 25

    使用Google Analytics API PHP客户端查询多个指标

  26. 26

    Google API PHP客户端-联系人服务

  27. 27

    Google Api客户端PHP-mkdir():权限被拒绝

  28. 28

    PHP Google API客户端缓存访问令牌

  29. 29

    Google API PHP客户端和合作伙伴

热门标签

归档