Subscriptions: update

يتطلب تفويضًا

تحديث اشتراك حالي. اطّلِع على مثال.

طلب

طلب HTTP

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

المعلَمات

اسم المعلَمة القيمة الوصف
معلمات المسار
id string رقم تعريف الاشتراك.

التفويض

ويتطلب هذا الطلب تفويضًا من خلال النطاق التالي (اقرأ المزيد عن المصادقة والتفويض).

النطاق
https://www.googleapis.com/auth/glass.timeline

نص الطلب

في نص الطلب، قدِّم مورد الاشتراكات مع الخصائص التالية:

اسم الموقع القيمة الوصف ملاحظات
الخصائص المطلوبة
callbackUrl string عنوان URL الذي يجب تسليم الإشعارات إليه (يجب أن يبدأ بـ https://). قابلة للكتابة
collection string المجموعة المطلوب الاشتراك فيها. القيم المسموح بها هي:
  • timeline - التغييرات في المخطط الزمني، بما في ذلك الإدراج والحذف والتحديثات.
  • locations - تحديثات الموقع.
  • settings - تحديثات الإعدادات.
قابلة للكتابة
الخصائص الاختيارية
operation[] list قائمة بالعمليات التي يجب الاشتراك فيها. تشير القائمة الفارغة إلى أنه يجب الاشتراك في جميع العمليات على المجموعة. القيم المسموح بها هي:
  • UPDATE - تم تحديث العنصر.
  • INSERT - تم إدراج عنصر جديد.
  • DELETE - تم حذف العنصر.
قابلة للكتابة
userToken string رمز مميز غير شفاف يتم إرساله إلى المشترك في الإشعارات حتى يتمكن من تحديد معرّف المستخدم. قابلة للكتابة
verifyToken string رمز مميز سري يتم إرساله إلى المشترك في الإشعارات بحيث يمكنه التحقق من أن الإشعار من إنشاء Google. قابلة للكتابة

الإجابة

إذا نجحت هذه الطريقة، فإنها تعرض مورد الاشتراكات في نص الاستجابة.

أمثلة

ملاحظة: إنّ الأمثلة المرتبطة بالرموز والمتوفرة لهذه الطريقة لا تمثّل كل لغات البرمجة المتوافقة (يُرجى مراجعة صفحة مكتبات البرامج للاطّلاع على قائمة باللغات المتوافقة).

لغة 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.

تستخدم مكتبة عميل 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

استخدام مكتبة عميل 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

استخدام مكتبة عملاء 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"
}