我在使用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行,文件“”)
如果有人能让我摆脱这个麻烦,我真的很感激。
答案 0 :(得分:0)
在Twitter中创建应用时,您必须通过API授权您将要读/写的帐户。
检查OAuth1文档,第2点和第3点对此:
https://github.com/googlesamples/apps-script-oauth1
我的Google App脚本未链接到任何电子表格或文档,这就是我必须调试脚本才能获取网址的原因。
在您授予或拒绝权限后,Twitter会重定向到您的回调:
它会在新标签中显示您的应用被授予/拒绝的权限。
然后,您可以根据需要通过API向Twitter发出请求。
如果您已在Twitter帐户中撤销授权,则必须执行
重置访问令牌(clearService功能)
...清除存储的身份验证数据,然后再次执行2。
我很想向你展示一些这个过程的图片,但是和你一样,我的帐户没有足够的声誉(当你很少或根本没有时,几乎不可能获得一些)。