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
- 创建请求令牌并将用户定向到授权 URL
--> 在 Google 应用程序脚本中调试函数 "showSidebar"。在 "template" 代码行之前调试,然后您可以在浏览器中复制/粘贴 link 并授权应用程序(link 存储在 authorizationUrl 变量中)。
我的 Google 应用程序脚本未 link 编辑到任何电子表格或文档,这就是为什么我必须调试脚本才能获得 url。
在您授予或拒绝权限后,Twitter 将重定向到您的回调:
- 处理回调
它会在新标签页中显示您的应用已被授予/拒绝权限。
然后您可以根据需要通过API向twitter发出请求。
如果你在你的推特账号中撤销了授权,你必须执行
重置访问令牌(clearService 函数)
...清除存储的授权数据,并再次执行2。
我很想给你看一些这个过程的图片,但和你一样,我的帐户没有足够的声誉(当你很少或 none 时几乎不可能赚到一些)。
我在使用 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
- 创建请求令牌并将用户定向到授权 URL --> 在 Google 应用程序脚本中调试函数 "showSidebar"。在 "template" 代码行之前调试,然后您可以在浏览器中复制/粘贴 link 并授权应用程序(link 存储在 authorizationUrl 变量中)。
我的 Google 应用程序脚本未 link 编辑到任何电子表格或文档,这就是为什么我必须调试脚本才能获得 url。
在您授予或拒绝权限后,Twitter 将重定向到您的回调:
- 处理回调
它会在新标签页中显示您的应用已被授予/拒绝权限。
然后您可以根据需要通过API向twitter发出请求。
如果你在你的推特账号中撤销了授权,你必须执行
重置访问令牌(clearService 函数)
...清除存储的授权数据,并再次执行2。
我很想给你看一些这个过程的图片,但和你一样,我的帐户没有足够的声誉(当你很少或 none 时几乎不可能赚到一些)。