我正在开发一个小工具(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 with
OAuth2`授权。
您能否告诉我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);
}
答案 0 :(得分:1)
Gadgets API框架不支持OAuth2。但是,Tasks API确实支持OAuth1,因此您仍然可以使工作正常。
答案 1 :(得分:1)
答案是 - 使用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 Tasks API,我们需要一个 API key。