簡體   English   中英

使用訪問令牌通過 Google Business Messages 發送消息

[英]Send message with Google Business Messages using access token

目前,我可以使用 Google Business Messages API 從代理從 NodeJS 代碼向用戶發送消息。

const bmApi = new businessmessages.businessmessages_v1.Businessmessages({});

這需要給定服務帳戶密鑰/秘密的身份驗證客戶端。

const auth = new GoogleAuth({
    keyFilename: '/home/my-keyfile.json',
    scopes: 'https://www.googleapis.com/auth/businessmessages',
});

const authClient = await auth.getClient();

// and logic to send message

然而,密鑰/秘密目前是硬編碼的。

但是在流程的這一點上,我有訪問令牌。

並希望使用它而不是 .json 文件。

但它不會接受訪問令牌。

另一種方法是直接調用 REST 接口。 https://developers.google.com/business-communications/business-messages/guides/how-to/message/send

curl -X POST https://businessmessages.googleapis.com/v1/conversations/__CONVERSATION_ID__/messages \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-messages" \
-H "$(oauth2l header --json ./service_account_key.json businessmessages)" \
-d "{
  'messageId': '$(uuidgen)',
  'text': 'Hello world!',
  'representative': {
    'avatarImage': 'https://developers.google.com/identity/images/g-logo.png',
    'displayName': 'Chatbot',
    'representativeType': 'BOT'
  }
}"

添加了帶有令牌的標頭。

access_token: <access-token>

但又沒有喜悅。

{
    "error": {
        "code": 401,
        "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "status": "UNAUTHENTICATED"
    }
}

我知道這應該像我們為調用 Google Play 商店所做的那樣工作:

try {
            let response = await this.httpClient.post({
                url: `${process.env.PLAYSTORE_URL}/${packageName}/reviews/${reviewId}:reply`,
                body : {
                  "replyText" : replyText
                },
                query: {
                    access_token: access_token <----
                }
              });

任何幫助將非常感激。

我認為您需要在 url 路徑中使用與當前CONVERSATION_ID匹配的變量,以及當前收到的每個代理消息之一。

Example:
    curl -X POST https://businessmessages.googleapis.com/v1/conversations/$(uuidgen)/messages \
    -H "Content-Type: application/json" \
    -H "User-Agent: curl/business-messages" \
    -H "$(oauth2l header --json ./service_account_key.json businessmessages)" \
    -d "{
      'messageId': '$(uuidgen)',
      'text': 'Hello world!',
      'representative': {
        'avatarImage': 'https://developers.google.com/identity/images/g-logo.png',
        'displayName': 'Chatbot',
        'representativeType': 'BOT'
      }
    }"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM