OAuth1 - Google 脚本无法创建 Twitter 服务

OAuth1 - Google Script cannot create Twitter Service

我在使用 OAuth1 身份验证通过 API 连接到 Twitter 的 Google 脚本时遇到问题。 以下图片是我在 Twitter 应用程序和 Google 脚本库中的设置。

抱歉,我没有足够的声誉来 post 图片

图 1:

lh3.googleusercontent.com/7QtiFZPG8z-wAAnJQslsMjncGB0NAu0qQdpZnwiqezJ2HdHOyey90CoCfWkqIm8igzuwOhjypw0Mm7RJaAy_0vMhe0wYNOcdHzeF2zAAwbdk4uvBhk3-vLEM-i2ZQ8uuzelt63PRCD2kOvgEG_x__HxmVN_JAXh3u5ixCbDjovq3HggB_Fz04_lfX28fCdRW6VgQQLg4XK_AEN8INXtXz9OUA8Og3pdfw_GWBXw_zSdtX9KvQ1FaQ6FB7m7ACE5PPfpYRuRpRx3rbu_pw1LIbRdj32RnVcC7__TDWtH8LMDg1Rp1RfL8cImiEbzWSI1c-vGW4jNl27Y1BiSthXmkFeBBDP36q732czWy3nmNpope0I4IeAamNqnWvGxSIWyhHuL5OGEXCbUw7j4CuCQjHG3SKVTcozPPyZ1N8e5er1AUZjTG1vU1QUatV02vyz7s4a-R9MSBvYGfvvRoRiLzBBkqL_SMRPHdAOAZ5SS9x9YHpbCkWU2TXy7mVm9DefwUJwS1TNKGWWKwT67oqax6QVsu0BTBLbXhKIGIK14XkVk=w747-h486-no

图 2:

lh3.googleusercontent.com/RHxefIpYhZLJ3Cm_UyEVFJrlqL0DGkQnhPs1SAyBeVSBEMxqbtJGWxcByUwa1-pSo9DBbwhNMb9Q474Da3WIs5NSYJbq-MEbuIwTfsYU18MDzH2WUXAwkzOa1LkoqnivuCdMn0Ii-gYlKLb94kTsd6Z_qRmlpSJQSfKAREB6SgN-v41YWEGtxdJRKK7qSeDPG2NQurhBmM58wCXccptoamNyt9m6xIyEJ-hVEh_LNJk7Tj6ZeDbSPtW6_kGHASLU3UvUsPNOnY1FdU61IePYAnXrj0AYq0erTiUPWPICkszb8rlvDaKTz7QxxRRqIPhIABclwO6mI8Br500P60ceGKI-bW4ufv56blRE8Ngr2teNaGqEAHFhVTjiltW8I2ngVc7O53zIEu3sce3IDhJast1NeFGjYN0T0OBvOj_hpU9UAhotmd-NCU-YShM6eB62cIaMopdo-VFB6cR1wyH65qlxIA9SeJe7XmPxli1Fd3ZPpLqEHmOYWMnnkuLYursyiKamxZNHxs4ywheDmAjxf6DHB6bgHwF5Sdzpyxcc5F8=w761-h461-no

这是我获取 Twitter 服务的代码

enter code here
//Create Twitter Service
function getTwitterService_() {  
// Create a new service with the given name. The name will be used when
// persisting the authorized token, so ensure it is unique within the
// scope of the property store.
return OAuth1.createService('twitter')
  // Set the endpoint URLs.
  .setAccessTokenUrl('https:// api.twitter.com/oauth/access_token')
  .setRequestTokenUrl('https:// api.twitter.com/oauth/request_token')
  .setAuthorizationUrl('https:// api.twitter.com/oauth/authorize')

  // Set the consumer key and secret.
  // Of course these values I will collect from Twitter App Settings
  .setConsumerKey("xxxxxzJzPXqH")
  .setConsumerSecret("xxxxxx")

  // Set the name of the callback function in the script referenced
  // above that should be invoked to complete the OAuth flow.
  .setCallbackFunction('authCallback')

  // Set the property store where authorized tokens should be persisted.
  .setPropertyStore(PropertiesService.getUserProperties());
}

我总是收到来自 OAuth1 服务的错​​误 服务未授权。 (第 271 行,文件“”)

如果有人能让我摆脱困境,我真的很感激。

当您在 Twitter 中创建应用程序时,您必须授权您将通过 API 读取/写入的帐户。

查看 OAuth1 文档,第 2 点和第 3 点与此相关:

https://github.com/googlesamples/apps-script-oauth1

  1. 创建请求令牌并将用户定向到授权 URL --> 在 Google 应用程序脚本中调试函数 "showSidebar"。在 "template" 代码行之前调试,然后您可以在浏览器中复制/粘贴 link 并授权应用程序(link 存储在 authorizationUrl 变量中)。

我的 Google 应用程序脚本未 link 编辑到任何电子表格或文档,这就是为什么我必须调试脚本才能获得 url。

在您授予或拒绝权限后,Twitter 将重定向到您的回调:

  1. 处理回调

它会在新标签页中显示您的应用已被授予/拒绝权限。

然后您可以根据需要通过API向twitter发出请求。

如果你在你的推特账号中撤销了授权,你必须执行

重置访问令牌(clearService 函数)

...清除存储的授权数据,并再次执行2。

我很想给你看一些这个过程的图片,但和你一样,我的帐户没有足够的声誉(当你很少或 none 时几乎不可能赚到一些)。