需要授權
更新現有的訂閱項目。請點選此處查看範例。
要求
HTTP 要求
PUT https://www.googleapis.com/mirror/v1/subscriptions/id
參數
| 參數名稱 | 價值 | 說明 |
|---|---|---|
| 路徑參數 | ||
id |
string |
訂閱項目的 ID。 |
授權
此要求需要獲得下列範圍的授權 (進一步瞭解驗證和授權)。
| 內容範圍 |
|---|
https://www.googleapis.com/auth/glass.timeline |
要求主體
在要求主體中,提供含有以下屬性的訂閱項目資源:
| 資源名稱 | 價值 | 說明 | 附註 |
|---|---|---|---|
| 必要屬性 | |||
callbackUrl |
string |
要傳送通知的網址 (開頭必須為 https://)。 |
可寫入 |
collection |
string |
要訂閱的最愛。允許的值包括:
|
可寫入 |
| 選用屬性 | |||
operation[] |
list |
列出應訂閱的作業。如果清單空白,代表要訂閱集合的所有作業。允許的值包括:
|
可寫入 |
userToken |
string |
傳送至通知訂閱者的不透明權杖,以便系統判斷使用者的 ID。 | 可寫入 |
verifyToken |
string |
透過通知傳送給訂閱者的秘密權杖,用於驗證通知是否由 Google 產生。 | 可寫入 |
回覆
如果成功,這個方法會在回應主體中傳回訂閱資源。
示例
注意:這個方法適用的程式語言眾多,我們只在此提供部分程式碼範例,完整的支援語言清單請參閱用戶端程式庫頁面。
Java
使用 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 用戶端程式庫。
##
# 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" }