Subscriptions: insert

Yêu cầu uỷ quyền

Tạo gói thuê bao mới. Xem ví dụ.

Yêu cầu

Yêu cầu HTTP

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

Ủy quyền

Yêu cầu này cần được cho phép nếu có phạm vi sau (đọc thêm về quy trình xác thực và cấp phép).

Phạm vi
https://www.googleapis.com/auth/glass.timeline

Nội dung yêu cầu

Trong phần nội dung yêu cầu, hãy cung cấp Tài nguyên cho gói thuê bao kèm theo các thuộc tính sau:

Tên tài sản Giá trị Mô tả Ghi chú
Thuộc tính bắt buộc
callbackUrl string URL nơi gửi thông báo (phải bắt đầu bằng https://). có thể ghi
collection string Bộ sưu tập mà bạn muốn đăng ký. Các giá trị được cho phép là:
  • timeline – Những thay đổi trên dòng thời gian, bao gồm cả tính năng chèn, xoá và cập nhật.
  • locations – Thông tin cập nhật về vị trí.
  • settings – Cập nhật về các chế độ cài đặt.
có thể ghi
Thuộc tính không bắt buộc
operation[] list Danh sách các thao tác cần đăng ký. Danh sách trống cho biết rằng mọi thao tác trên bộ sưu tập sẽ được đăng ký. Các giá trị được cho phép là:
  • UPDATE – Mặt hàng đã được cập nhật.
  • INSERT – Một mục mới đã được chèn vào.
  • DELETE – Mục đã bị xoá.
có thể ghi
userToken string Mã thông báo mờ được gửi đến người đăng ký trong các thông báo để có thể xác định mã nhận dạng của người dùng. có thể ghi
verifyToken string Mã thông báo bí mật được gửi đến người đăng ký trong phần thông báo để họ có thể xác minh rằng thông báo đó là do Google tạo ra. có thể ghi

Phản hồi

Nếu thành công, phương thức này sẽ trả về một Tài nguyên gói thuê bao trong nội dung phản hồi.

Ví dụ

Lưu ý: Các đoạn mã mẫu của phương thức này không phải là ví dụ cho mọi ngôn ngữ lập trình được hỗ trợ (xem trang thông tin về các thư viện dùng cho ứng dụng để biết danh sách các ngôn ngữ được hỗ trợ).

Java

Sử dụng thư viện ứng dụng 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

Sử dụng thư viện ứng dụng.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

Sử dụng thư viện ứng dụngPHP.

/**
 * 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

Sử dụng thư viện ứng dụng 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

Sử dụng thư viện ứng dụng 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

Sử dụng Thư viện ứng dụng 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
}

HTTP thô

Không sử dụng thư viện ứng dụng.

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"
}