Subscriptions: insert

需要授权

创建新订阅。 查看示例

请求

HTTP 请求

POST https://www.googleapis.com/mirror/v1/subscriptions

授权

此请求需要获得下列范围的授权(详细了解身份验证和授权)。

范围
https://www.googleapis.com/auth/glass.timeline

请求正文

在请求正文中,提供具有以下属性的 Subscriptions 资源

属性名称 说明 备注
必需属性
callbackUrl string 应用于接收通知的网址(必须以 https:// 开头)。 可写入
collection string 要订阅的集合。允许的值包括:
  • timeline - 时间轴中的更改,包括插入、删除和更新。
  • locations - 位置信息更新。
  • settings - 设置更新。
可写入
可选属性
operation[] list 应订阅的操作列表。空列表表示应订阅对集合的所有操作。允许的值包括:
  • UPDATE - 项目已更新。
  • INSERT - 已插入新项。
  • DELETE - 项目已删除。
可写入
userToken string 在通知中发送给订阅者的不透明令牌,以便订阅者可以确定用户的 ID。 可写入
verifyToken string 一个在通知中发送给订阅者的秘密令牌,用于验证通知是否由 Google 生成。 可写入

响应

如果成功,此方法将在响应正文中返回一项 Subscriptions 资源

示例

注意:此方法的代码示例并未列出所有受支持的编程语言(请参阅客户端库页面,查看受支持的语言列表)。

使用 Java 客户端库

import com.google.api.services.mirror.Mirror;
import com.google.api.services.mirror.model.Subscription;

import java.io.IOException;
import java.util.List;

public class MyClass {
 
// ...

 
/**
   * Subscribe to notifications for the current user.
   *
   * @param service Authorized Mirror service.
   * @param collection Collection to subscribe to (supported values are "timeline" and
            "locations").
   * @param userToken Opaque token used by the Glassware to identify the user
   *        the notification pings are sent for (recommended).
   * @param verifyToken Opaque token used by the Glassware to verify that the
   *        notification pings are sent by the API (optional).
   * @param callbackUrl URL receiving notification pings (must be HTTPS).
   * @param operation List of operations to subscribe to. Valid values are
   *        "UPDATE", "INSERT" and "DELETE" or {@code null} to subscribe to all.
   */

 
public static void subscribeToNotifications(Mirror service, String collection, String userToken,
     
String verifyToken, String callbackUrl, List<String> operation) {
   
Subscription subscription = new Subscription();
    subscription
.setCollection(collection).setUserToken(userToken).setVerifyToken(verifyToken)
       
.setCallbackUrl(callbackUrl).setOperation(operation);
   
try {
      service
.subscriptions().insert(subscription).execute();
   
} catch (IOException e) {
     
System.err.println("An error occurred: " + e);
   
}
 
}

 
// ...
}

使用 .NET 客户端库

using System;
using System.Collections.Generic;

using Google.Apis.Mirror.v1;
using Google.Apis.Mirror.v1.Data;

public class MyClass {
 
// ...

 
/// <summary>
 
/// Subscribe to notifications for the current user.
 
/// </summary>
 
/// <param name='service'>Authorized Mirror service.</param>
 
/// <param name='collection'>
 
/// Collection to subscribe to (supported values are "timeline" and
 
/// "locations").
 
/// </param>
 
/// <param name='userToken'>
 
/// Opaque token used by the Glassware to identify the user the
 
/// notification pings are sent for (recommended).
 
/// </param>
 
/// <param name='verifyToken'>
 
/// Opaque token used by the Glassware to verify that the notification
 
/// pings are sent by the API (optional).
 
/// </param>
 
/// <param name='callbackUrl'>
 
/// URL receiving notification pings (must be HTTPS).
 
/// </param>
 
/// <param name='operation'>
 
/// List of operations to subscribe to. Valid values are "UPDATE", "INSERT"
 
/// and "DELETE" or {@code null} to subscribe to all.
 
/// </param>
 
public static void SubscribeToNotifications(MirrorService service,
     
String collection, String userToken, String verifyToken,
     
String callbackUrl, List<String> operation) {
   
Subscription subscription = new Subscription() {
     
Collection = collection,
     
UserToken = userToken,
     
VerifyToken = verifyToken,
     
CallbackUrl = callbackUrl,
     
Operation = operation
   
};
   
try {
      service
.Subscriptions.Insert(subscription).Fetch();
   
} catch (Exception e) {
     
Console.WriteLine("An error occurred: " + e.Message);
   
}
 
}

 
// ...
}

使用 PHP 客户端库

/**
 * Subscribe to notifications for the current user.
 *
 * @param Google_MirrorService $service Authorized Mirror service.
 * @param string $collection Collection to subscribe to (supported
 *                           values are "timeline" and "locations").
 * @param string $userToken Opaque token used by the Service to
 *                          identify the  user the notification pings
 *                          are sent for (recommended).
 * @param string $verifyToken Opaque token used by the Service to verify
 *                            that the notification pings are sent by
 *                            the API (optional).
 * @param string $callbackUrl URL receiving notification pings (must be HTTPS).
 * @param Array $operation List of operations to subscribe to. Valid values
 *                         are "UPDATE", "INSERT" and "DELETE" or
 *                         null to subscribe to all.
 */

function subscribeToNotifications($service, $collection, $userToken,
     $verifyToken
, $callbackUrl, $operation) {
 
try {
    $subscription
= new Google_Subscription();
    $subscription
->setCollection($collection);
    $subscription
->setUserToken($userToken);
    $subscription
->setVerifyToken($verifyToken);
    $subscription
->setCallbackUrl($callbackUrl);
    $subscription
->setOperation($operation);
    $service
->subscriptions->insert($subscription);
 
} catch (Exception $e) {
   
print 'An error occurred: ' . $e->getMessage();
 
}
}

使用 Python 客户端库

from apiclient import errors
# ...

def subscribe_to_notifications(service, collection, user_token, verify_token,
                               callback_url
, operation):
 
"""Subscribe to notifications for the current user.

  Args:
    service: Authorized Mirror service.
    collection: Collection to subscribe to (supported values are "
timeline"
                and "
locations").
    user_token: Opaque token used by the Glassware to identify the user the
                notification pings are sent for (recommended).
    verify_token: Opaque token used by the Glassware to verify that the
                  notification pings are sent by the API (optional).
    callback_url: URL receiving notification pings (must be HTTPS).
    operation: List of operations to subscribe to. Valid values are "
UPDATE",
               "
INSERT" and "DELETE" or None to subscribe to all.
  """

  subscription
= {
     
'collection': collection,
     
'userToken': user_token,
     
'verifyToken': verify_token,
     
'callbackUrl': callback_url,
     
'operation': operation
   
}
 
try:
    service
.subscriptions().insert(body=subscription).execute()
 
except errors.HttpError, error:
   
print 'An error occurred: %s' % e

使用 Ruby 客户端库

##
# Subscribe to notifications for the current user.
#
# @param [Google::APIClient] client
#   Authorized client instance.
# @param [String] collection
#   Collection to subscribe to (supported values are "timeline" and "locations").
# @param [String] user_token
#   Opaque token used by the Glassware to identify the user the notification
#   pings are sent for (recommended).
# @param [String] verify_token
#   Opaque token used by the Glassware to verify that the notification pings are
#   sent by the API (optional).
# @param [String] callback_url
#   URL receiving notification pings (must be HTTPS).
# @param [Array] operation
#   List of operations to subscribe to. Valid values are "UPDATE", "INSERT" and
#   "DELETE" or nil to subscribe to all.
# @return nil
def subscribe_to_notification(client, collection, user_token, verify_token,
                              callback_url
, operation)
  mirror
= client.discovered_api('mirror', 'v1')
  subscription
= mirror.subscriptions.insert.request_schema.new({
   
'collection' => collection,
   
'userToken' => user_token,
   
'verifyToken' => verify_token,
   
'callbackUrl' => callback_url,
   
'operation' => operation})
  result
= client.execute(
   
:api_method => mirror.subscriptions.insert,
   
:body_object => subscription)
 
if result.error?
    puts
"An error occurred: #{result.data['error']['message']}"
 
end
end

使用 Go 客户端库

import (
        "code.google.com/p/google-api-go-client/mirror/v1"
        "fmt"
)

// SubscribeToNotifications subscribes to notifications for the current user.
func SubscribeToNotifications(g *mirror.Service, collection string,
        userToken string, verifyToken string, callbackUrl string,
        operations []string) (*mirror.Subscription, error) {
        s := &mirror.Subscription{
                Collection:  collection,
                UserToken:   userToken,
                VerifyToken: verifyToken,
                CallbackUrl: callbackUrl,
        }
        r, err := g.Subscriptions.Insert(s).Do()
        if err != nil {
                fmt.Printf("An error occurred: %v\n", err)
                return nil, err
        }
        return r, nil
}

不使用客户端库。

POST /mirror/v1/subscriptions HTTP/1.1
Authorization: Bearer auth token
Content-Type: application/json
Content-Length: length

{
 
"collection": "timeline"
 
"userToken": "harold_penguin",
 
"operation": ["UPDATE"],
 
"callbackUrl": "https://example.com/notify/callback"
}