如何在Google Cloud Endpoints Javascript客户端中设置自定义标头?

时间:2014-01-17 10:26:40

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

我可以使用Javascript客户端从Google Cloud Endpoints中获取博客帖子列表:

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

但我需要在Google Cloud Endpoints请求中设置一个包含用户令牌的自定义标头值(这可能是来自Facebook的访问令牌)。如何使用Google的Javascript客户端执行此操作?我可以通过不使用谷歌的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'
});

虽然看起来不是很好的做法。有更好的方法吗?

2 个答案:

答案 0 :(得分: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页面。

答案 1 :(得分:0)

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