Subscriptions: update

Требуется авторизация

Обновляет существующую подписку. См. пример .

Запрос

HTTP-запрос

PUT https://www.googleapis.com/mirror/v1/subscriptions/id

Параметры

Имя параметра Ценить Описание
Параметры пути
id string Идентификатор подписки.

Авторизация

Этот запрос требует авторизации со следующей областью действия ( подробнее об аутентификации и авторизации читайте здесь ).

Объем
https://www.googleapis.com/auth/glass.timeline

Тело запроса

В теле запроса укажите ресурс Subscriptions со следующими свойствами:

Имя свойства Ценить Описание Примечания
Обязательные свойства
callbackUrl string URL-адрес, по которому должны доставляться уведомления (должен начинаться с https:// ). записываемый
collection string Коллекция, на которую можно подписаться. Допустимые значения:
  • timeline — изменения на временной шкале, включая вставку, удаление и обновление.
  • locations - Обновления локаций.
  • settings - Обновления настроек.
записываемый
Дополнительные свойства
operation[] list Список операций, на которые следует подписаться. Пустой список указывает, что на все операции над коллекцией необходимо подписаться. Допустимые значения:
  • UPDATE – элемент обновлен.
  • INSERT – добавлен новый элемент.
  • DELETE – элемент удален.
записываемый
userToken string Непрозрачный токен, отправляемый подписчику в уведомлениях, чтобы он мог определить идентификатор пользователя. записываемый
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 {
  // ...

  /**
   * Update an existing subscription for the current user.
   * 
   * @param service Authorized Mirror service.
   * @param collection Collection to subscribe to (supported values are "timeline" and 
   *        "locations").
   * @param newUserToken Opaque token used by the Glassware to identify the user
   *        the notification pings are sent for (recommended).
   * @param newVerifyToken Opaque token used by the Glassware to verify that the
   *        notification pings are sent by the API (optional).
   * @param newCallbackUrl URL receiving notification pings (must be HTTPS).
   * @param newOperation List of operations to subscribe to. Valid values are
   *        "UPDATE", "INSERT" and "DELETE" or {@code null} to subscribe to all.
   */
  public static void updateSubscription(Mirror service, String collection, String newUserToken,
      String newVerifyToken, String newCallbackUrl, List<String> newOperation) {
    Subscription subscription = new Subscription();
    subscription.setCollection(collection).setUserToken(newUserToken)
        .setVerifyToken(newVerifyToken).setCallbackUrl(newCallbackUrl).setOperation(newOperation);
    try {
      service.subscriptions().update(collection, 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>
  /// Update an existing subscription 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='newUserToken'>
  /// Opaque token used by the Glassware to identify the user the
  /// notification pings are sent for (recommended).
  /// </param>
  /// <param name='newVerifyToken'>
  /// Opaque token used by the Glassware to verify that the notification
  /// pings are sent by the API (optional).
  /// </param>
  /// <param name='newCallbackUrl'>
  /// URL receiving notification pings (must be HTTPS).
  /// </param>
  /// <param name='newOperation'>
  /// List of operations to subscribe to. Valid values are "UPDATE", "INSERT"
  /// and "DELETE" or {@code null} to subscribe to all.
  /// </param>
  public static void updateSubscription(MirrorService service,
      String collection, String newUserToken, String newVerifyToken,
      String newCallbackUrl, List<String> newOperation) {
    Subscription subscription = new Subscription() {
      Collection = collection,
      UserToken = newUserToken,
      VerifyToken = newVerifyToken,
      CallbackUrl = newCallbackUrl,
      Operation = newOperation
    };
    try {
      service.Subscriptions.Update(subscription, collection).Fetch();
    } catch (Exception e) {
      Console.WriteLine("An error occurred: " + e.Message);
    }
  }

  // ...
}

PHP

Использует клиентскую библиотеку PHP .

/**
 * Update an existing subscription 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 $newUserToken Opaque token used by the Service to
 *                             identify the  user the notification pings
 *                             are sent for (recommended).
 * @param string $newVerifyToken Opaque token used by the Service to verify
 *                              that the notification pings are sent by
 *                              the API (optional).
 * @param string $newCallbackUrl URL receiving notification pings
 *                               (must be HTTPS).
 * @param Array $newOperation List of operations to subscribe to. Valid values
 *                            are "UPDATE", "INSERT" and "DELETE" or
 *                            null to subscribe to all.
 */
function subscribeToNotifications($service, $collection, $newUserToken,
    $newVerifyToken, $newCallbackUrl, $newOperation) {
  try {
    $subscription = new Google_Subscription();
    $subscription->setCollection($collection);
    $subscription->setUserToken($newUserToken);
    $subscription->setVerifyToken($newVerifyToken);
    $subscription->setCallbackUrl($newCallbackUrl);
    $subscription->setOperation($onewOeration);
    $service->subscriptions->update($collection, $subscription);
  } catch (Exception $e) {
    print 'An error occurred: ' . $e->getMessage();
  }
}

Питон

Использует клиентскую библиотеку Python .

from apiclient import errors
# ...

def update_subscription(service, collection, new_user_token, new_verify_token,
                        new_callback_url, new_operation):
  """Update an existing subscription for the current user.

  Args:
    service: Authorized Mirror service.
    collection: Collection to subscribe to (supported values are "timeline" and
                "locations").
    new_user_token: Opaque token used by the Glassware to identify the user the
                    notification pings are sent for (recommended).
    new_verify_token: Opaque token used by the Glassware to verify that the
                      notification pings are sent by the API (optional).
    new_callback_url: URL receiving notification pings (must be HTTPS).
    new_operation: List of operations to subscribe to. Valid values are
                   "UPDATE", "INSERT" and "DELETE" or None to subscribe to all.
  """
  subscription = {
      'collection': collection,
      'userToken': new_user_token,
      'verifyToken': new_verify_token,
      'callbackUrl': new_callback_url,
      'operation': new_operation
   }
  try:
    service.subscriptions().update(id=collection, body=subscription).execute()
  except errors.HttpError, error:
    print 'An error occurred: %s' % e

Руби

Использует клиентскую библиотеку Ruby .

##
# Update an existing subscription 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] new_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] new_callback_url
#   URL receiving notification pings (must be HTTPS).
# @param [Array] new_operation
#   List of operations to subscribe to. Valid values are "UPDATE", "INSERT" and
#   "DELETE" or nil to subscribe to all.
# @return nil
def update_subscription(client, collection, new_user_token, new_verify_token,
                        new_callback_url, new_operation)
  mirror = client.discovered_api('mirror', 'v1')
  subscription = mirror.subscriptions.update.request_schema.new({
    'collection' => collection,
    'userToken' => new_user_token,
    'verifyToken' => new_verify_token,
    'callbackUrl' => new_callback_url,
    'operation' => new_operation})
  result = client.execute(
    :api_method => mirror.subscriptions.update,
    :body_object => subscription,
    :parameters => { 'id' => collection })
  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"
)

// UpdateSubscription updates an existing subscription for the current user
func UpdateSubscription(g *mirror.Service, collection string,
	newUserToken string, newVerifyToken string, newCallbackUrl string,
	operations []string) (*mirror.Subscription, error) {
	s := &mirror.Subscription{
		Collection:  collection,
		UserToken:   newUserToken,
		VerifyToken: newVerifyToken,
		CallbackUrl: newCallbackUrl,
	}
	r, err := g.Subscriptions.Update(collection, s).Do()
	if err != nil {
		fmt.Printf("An error occurred: %v\n", err)
		return nil, err
	}
	return r, nil
}

Необработанный HTTP

Не использует клиентскую библиотеку.

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

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