【问题标题】:How to set a custom header in Google Cloud Endpoints Javascript Client?如何在 Google Cloud Endpoints Javascript 客户端中设置自定义标头?
【发布时间】:2014-02-06 15:25:04
【问题描述】:

我可以使用 Javascript 客户端从 Google Cloud Endpoints 获取博客文章列表:

gapi.client.blog.posts.list().execute(function (resp) {
  console.log(resp);
});

但我需要在包含用户令牌(这可能是来自 Facebook 的访问令牌)的 Google Cloud Endpoints 请求中设置自定义标头值。我如何使用 Google 的 Javascript 客户端来做到这一点?我可以不使用 Google 的 Javascript 客户端来解决这个问题,但我宁愿使用它。

https://developers.google.com/appengine/docs/java/endpoints/consume_js https://developers.google.com/api-client-library/javascript/reference/referencedocs

编辑

看来我可以像这样传递自定义标头值:

gapi.auth.setToken({
    access_token: 'this is my custom value'
});

不过,这似乎不是一个好习惯。有没有更好的方法来做到这一点?

【问题讨论】:

  • 遇到了同样的问题并放弃了 jQuery 的 JavaScript 客户端($.ajax 与 Endpoints 后端配合良好)。 setToken 有什么好运气吗?
  • 能正常使用标题吗?这可行,但它在令牌之前附加了一个字符串“Bearer”,所以我必须做token = os.getenv('HTTP_AUTHORIZATION').split(" ")[1]

标签: javascript google-api google-cloud-endpoints


【解决方案1】:

您现在可以使用gapi.client.request 执行此操作,例如:

gapi.client.init({
    'clientId': 'YOUR_WEB_CLIENT_ID.apps.googleusercontent.com',
    'scope': 'your_scope'
}).then(function() {
    return gapi.client.request({
        'path': 'http://path/to/your/endpoints/api',
        'headers': { 'mycustomheader': 'myvalue' }
    })
}).then(function(response) {
    console.log(response.result);
}, function(reason) {
    console.log('Error: ' + reason.result.error.message);
});

另请参阅 Google API Javascript 客户端文档的 Getting Started 页面。

【讨论】:

    【解决方案2】:

    尝试正常使用标头,但获取令牌并在需要显示令牌的位置添加包含它的变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多