【问题标题】:Authorization is required to perform that action执行该操作需要授权
【发布时间】:2013-04-29 09:58:55
【问题描述】:

我有一个将 Google Doc 转换为 Blogger 帖子的脚本(将图像保存到 Picasa 中)...我使用了 PicasaApp 库。

我想以“用户访问网络应用”的身份运行该应用,以便人们可以在他们的文档和博客中使用它。

它对我来说很好,但总是返回“需要授权才能执行该操作”。与其他 Google 帐户一起使用时。

我有一个运行测试代码的函数,用于通过 API 与 DocList、PicasaApp 和 Blogger 对话。他们都强迫我,作者进行身份验证,并且效果很好。我什至尝试将 googleOAuth_ 的名称更改为 my_googleOAuth(见下文),以防它与 PicasaApp 中的 googleOAuth_ 发生冲突。

function my_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"); // Client ID:
    oAuthConfig.setConsumerSecret("anonymous"); //Client secret
    return {oAuthServiceName:name, oAuthUseToken:"always"};
}

这真的让我发疯了,而且似乎在任何地方都没有关于该做什么的明确答案。我已经完成了十几种不同的编辑/保存/运行循环。

【问题讨论】:

  • 顺便说一下,这个博主 my_googleOAuth 只有在我使用我的真实 setConsumerKey 和 ConsumerSecret 时才有效。
  • 您是否使用“部署为 Web 应用程序”发布脚本并选择了适当的“将应用程序执行为”选项?

标签: google-apps-script web-applications blogger google-docs urlfetch


【解决方案1】:

不幸的是,这是已知的限制,授权有效用户对抗 UrlFetch/OAuth1,并且在问题跟踪器上有一个open feature request

您可以在此处手动执行 OAuth 2 流程并将令牌自己存储在 UserProperties 中。这是一些example OAuth2 code,您需要在developers.google.com/console 创建您的 OAuth2 客户端 ID/密码

【讨论】:

  • 谢谢 Arun... oAuth2 看起来确实在工作,我得到了“让我们开始吧”链接、oAuth 屏幕,然后是可怕的......“执行该操作需要授权。 "
  • 哦,等等。杜尔!我已经实现了您的 oAuth2,但 Picasa 代码仍在通过 oAuth1 访问。
  • 鉴于我试图制作一个应用程序来教人们如何制作一个简单的应用程序,oAuth2 是不是有点夸大了脑痛?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 2012-07-10
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 2015-03-27
相关资源
最近更新 更多