推送通知给予未经授权,即400

时间:2017-12-17 05:42:22

标签: actions-on-google http-status-code-400

以下是我正在遵循的设置: 我遵循了https://developers.google.com/actions/assistant/updates中提到的内容:

{ code: 400,
     message: 'Unauthorized push.',
     status: 'INVALID_ARGUMENT' } } '400: Bad Request'

这是发送通知的代码: 我已经对userId进行了硬编码,这是我在向用户请求许可后的最后一步意图中实现后端的userId。

const google = require('googleapis');
const key = require("./service-account-key.json");

var jwtClient = new google.auth.JWT(
  key.client_email, null, key.private_key,
  ['https://www.googleapis.com/auth/actions.fulfillment.conversation'],
  null
);

jwtClient.authorize(function (err, tokens) {
        var notif = {
          userNotification: {
            title: "This is a test reply",
          },
          target: {
            userId: 'ABwppHE75K2ZVr00a7EcCT_4hv00fck7aFtdR7PmO_w3U3j9w1b3uCjyCoStVAHSgv5LL3Swup9RmkZ-',
            intent: 'doctor_reply'
          }
        }

        console.log(JSON.stringify(tokens) + "\n" + JSON.stringify(notif));

        request.post('https://actions.googleapis.com/v2/conversations:send', {
          'auth': {
            'bearer': tokens.access_token
          },
          'json': true,
          'body': { 'customPushMessage': notif, 'isInSandbox': true}
        }, function(err,httpResponse,body) {
          console.log("notification sent");
          console.log(err, body, httpResponse.statusCode + ': ' + httpResponse.statusMessage)
        });
});

有没有人遇到过类似的问题?

1 个答案:

答案 0 :(得分:1)

经过调试和调试后通过反复试验。我意识到我是在IOS手机和手机上尝试的。由于某些原因,api因IOS助手版本而出现此错误。我假设,因为他们在他们的文档中说它仍处于测试阶段,他们可能没有为ios用户启用它。

一旦我对我的Android手机运行谷歌助手测试版本,我立即获得了200个&通知就像一个魅力。