我得到这个错误:序列化继续时出现意外异常(没有太多帮助)
它是由FetchUrlApp.fetch();调用引起的。我akm使用谷歌应用脚本的网站,而不是谷歌电子表格。代码在原始实例中可以正常工作,但只要我将代码复制并粘贴到新项目中,就会收到上面的错误消息。我正在访问Google Docs API。我在其他论坛上读到,我需要授权,但我无法获得正确的授权,代码才能工作。当我第一次运行代码副本时,不会弹出任何提示。
代码发挥:
var oauthConfig = UrlFetchApp.addOAuthService("docs");
oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope=https://docs.google.com/feeds/");
oauthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oauthConfig.setConsumerKey(_consumerKey_);
oauthConfig.setConsumerSecret(_consumerSecret_);
var requestData3 = {
"method": "GET",
"headers": {"GData-Version": "3.0"},
"oAuthServiceName": "docs",
"oAuthUseToken": "always",
};
var url = "https://docs.google.com/feeds/" + userName + "/private/full/-/mine";
var result = UrlFetchApp.fetch(url, requestData3); //error occurs, any thoughts?先谢谢你,詹姆斯·克里姆
发布于 2012-06-09 04:39:04
您必须将consumerKey和consumerSecret都设置为“匿名”,才能触发3条腿的OAuth流程:
oauthConfig.setConsumerKey("anonymous");
oauthConfig.setConsumerSecret("anonymous");将这两行替换为这两行,将出现授权弹出对话框,允许用户授予对其文档的访问权限。
发布于 2012-06-09 02:34:00
我建议编写一个特殊的函数,它除了调用Oauth进程并从脚本编辑器中调用它一次之外,什么也不做。作为示例,下面是我最近用来显示authorize弹出窗口的示例:
function authorize(){
// function to call from the script editor to authorize googleOauth
var id=mailtemplatedoc
var url = 'https://docs.google.com/feeds/';
var doc = UrlFetchApp.fetch(url+'download/documents/Export? exportFormat=html&format=html&id='+id,
googleOAuth_('docs',url)).getContentText();
}编辑:和我忘记的缺失的部分:
function googleOAuth_(name,scope) {
var oAuthConfig = UrlFetchApp.addOAuthService(name);
oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oAuthConfig.setConsumerKey('anonymous');
oAuthConfig.setConsumerSecret('anonymous');
return {oAuthServiceName:name, oAuthUseToken:"always"};
}https://stackoverflow.com/questions/10954075
复制相似问题