我正在开发一个要在内部运行的小工具(html, JS) (Google Calendar page)。我需要在那里显示用户的任务,所以我需要连接到Google Task Api。我需要使用OAuth2授权和这样的请求:
GET https://www.googleapis.com/tasks/v1/users/@me/lists
GET https://www.googleapis.com/tasks/v1/lists/tasklist/tasks不幸的是,我拥有t found description or samples for gadgets withOAuth2的授权。
请您告诉我,在这种情况下,OAuth2部分会是什么样子?
<OAuth2>
<Service name="[service_name]">
<Authorization url="https://.../authorize"/>
<Token url="https://.../oauth2/token"/>
</Service>
</OAuth2>请批准请求的代码好吗?(JS)
function loadContents(){
var url = "https://www.googleapis.com/tasks/v1/users/@me/lists?alt=json";
var params = {};
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
params[gadgets.io.RequestParameters.AUTHORIZATION]=gadgets.io.AuthorizationType.OAUTH2;
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
params[gadgets.io.RequestParameters.OAUTH_SERVICE_NAME] ="[service_name]";
var callback = function (response) {
if (response.oauthApprovalUrl) {
...
}
};
gadgets.io.makeRequest(url, callback, params);
} 发布于 2014-08-15 14:11:50
答案是--使用OAuth而不是OAuth 2.0。
OAuth部分应该是:
<OAuth>
<Service name="google">
<Access url="https://www.google.com/accounts/OAuthGetAccessToken" method="GET" />
<Request url="https://www.google.com/accounts/OAuthGetRequestToken?scope=https://www.googleapis.com/auth/tasks" method="GET" />
<Authorization url="https://www.google.com/accounts/OAuthAuthorizeToken?oauth_callback=http://oauth.gmodules.com/gadgets/oauthcallback" />
</Service>
</OAuth>请求是[JS]
var params = {};
url = "https://www.googleapis.com/tasks/v1/users/@me/lists?key=YOUR_API_KEY";
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.OAUTH;
params[gadgets.io.RequestParameters.OAUTH_SERVICE_NAME] = "google";
params[gadgets.io.RequestParameters.OAUTH_USE_TOKEN] = "always";
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;要将OAuth1用于Google,我们需要一个API密钥。
发布于 2014-08-14 14:14:43
小工具API框架不支持OAuth2。不过,Tasks确实支持OAuth1,所以您可能仍然能够让事情正常工作。
https://stackoverflow.com/questions/25242816
复制相似问题