首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序列化continuation时出现意外异常

序列化continuation时出现意外异常
EN

Stack Overflow用户
提问于 2012-06-09 02:21:49
回答 2查看 3.1K关注 0票数 3

我得到这个错误:序列化继续时出现意外异常(没有太多帮助)

它是由FetchUrlApp.fetch();调用引起的。我akm使用谷歌应用脚本的网站,而不是谷歌电子表格。代码在原始实例中可以正常工作,但只要我将代码复制并粘贴到新项目中,就会收到上面的错误消息。我正在访问Google Docs API。我在其他论坛上读到,我需要授权,但我无法获得正确的授权,代码才能工作。当我第一次运行代码副本时,不会弹出任何提示。

代码发挥:

代码语言:javascript
复制
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?

先谢谢你,詹姆斯·克里姆

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-09 04:39:04

您必须将consumerKey和consumerSecret都设置为“匿名”,才能触发3条腿的OAuth流程:

代码语言:javascript
复制
oauthConfig.setConsumerKey("anonymous");
oauthConfig.setConsumerSecret("anonymous");

将这两行替换为这两行,将出现授权弹出对话框,允许用户授予对其文档的访问权限。

票数 0
EN

Stack Overflow用户

发布于 2012-06-09 02:34:00

我建议编写一个特殊的函数,它除了调用Oauth进程并从脚本编辑器中调用它一次之外,什么也不做。作为示例,下面是我最近用来显示authorize弹出窗口的示例:

代码语言:javascript
复制
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();  
    }

编辑:和我忘记的缺失的部分:

代码语言:javascript
复制
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"};
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10954075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档