OAuth1 - Google Script无法创建Twitter服务

时间:2015-09-27 04:00:37

标签: twitter-oauth

我在使用OAuth1身份验证通过API连接到Twitter时遇到麻烦。 以下图片是我在Twitter Apps和Google Script Libraries中的设置。

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

图片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行,文件“”)

如果有人能让我摆脱这个麻烦,我真的很感激。

1 个答案:

答案 0 :(得分:0)

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

检查OAuth1文档,第2点和第3点对此:

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

  1. 创建请求令牌并将用户定向到授权URL - > Google App Scripts中的调试功能“showSidebar”。在“模板”代码行之前调试,然后您可以在浏览器中复制/粘贴链接并授权应用程序(链接存储在authorizationUrl变量中)。
  2. 我的Google App脚本未链接到任何电子表格或文档,这就是我必须调试脚本才能获取网址的原因。

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

    1. 处理回调
    2. 它会在新标签中显示您的应用被授予/拒绝的权限。

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

      如果您已在Twitter帐户中撤销授权,则必须执行

      重置访问令牌(clearService功能)

      ...清除存储的身份验证数据,然后再次执行2。

      我很想向你展示一些这个过程的图片,但是和你一样,我的帐户没有足够的声誉(当你很少或根本没有时,几乎不可能获得一些)。