Google Apps Script 中基于 Twitter OAuth Pin 的授权“oob”
Twitter OAuth Pin based authorization 'oob' in Google Apps Script
我正在尝试在我的Google Apps Script中使用基于Twitter Pin的授权,以最终代表其他用途发送推文。
我坦率地承认,我不知道自己在做什么,但我在互联网上阅读了很多信息,觉得我已经尝试了一切。
我目前的Google Apps Script JavaScript代码:
var method = 'post';
var url = 'https://api.twitter.com/oauth/request_token';
var consumerKey = '[my consumer key]';
var ticks = '1422745454';
var nonce = '6826266';
var options = {
'method': method,
'oauth_callback': 'oob',
'oauth_consumer_key': consumerKey,
'oauth_nonce': nonce,
'oauth_signature': 'cIFeptE5HjHp7xrp%2BZt9xFhHox4%3D',
'oauth_signature_method': 'HMAC-SHA1',
'oauth_timestamp': ticks,
'oauth_version': '1.0'
};
var response = UrlFetchApp.fetch(url, options);
对于测试,我将每次测试运行前的刻度设置为此处的值随机数是介于 111111 和 9999999 之间的随机数,在每次测试运行之前重新生成。我用一些从 linq2twitter 项目中提取的 c# 代码生成的 oauth 签名
我怀疑问题是签名。我已经阅读了有关创建签名的 Twitter 文档,我认为 C# 代码正在正确执行此操作,但我不确定。
问题是无论我尝试什么,我总是收到此错误:"请求失败 https://api.twitter.com/oauth/request_token 返回代码 401。截断的服务器响应:无法验证 oauth 签名和令牌(使用 muteHttpExceptions 选项检查完整响应)"
我一直试图在Google Apps Script中找到基于Twitter Pin的授权示例,但到目前为止还没有找到任何东西。我尝试用C#,PHP等翻译示例也失败了。
请帮忙。
Apps Script 提供了一个与 UrlFetchApp 配合使用的 Oauth API,他们甚至在他们的示例中使用 twitter。 如果可能的话,与这些人合作,对签名生成进行故障排除确实很麻烦。
https://developers.google.com/apps-script/reference/url-fetch/o-auth-confighttps://developers.google.com/apps-script/articles/twitter_tutorial
如果绝对必须从头开始执行此操作,最好的方法是获取使用现有库(如你提到的 c# 库)的请求,然后努力获取应用脚本以生成完全相同的请求。
我感觉这就是您现在正在做的事情,因此可能只是在传出请求中对您的签名进行 base64 编码的问题:
https://developers.google.com/apps-script/reference/utilities/utilities#base64Encode(String)
最终,在应用程序脚本中手动执行整个Oauth过程非常困难。大约一年前,当我从头开始尝试这样的事情时,我最终放弃了,而是使用了部署到Google App Engine的Python应用程序。我将来自 App Script 的请求提交到 App Engine 应用程序,App Engine 应用程序会处理 Oauth 并将我的请求中继到外部服务,然后再将请求返回到我的 App Script。 这种方法本身就很复杂。
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么我的解析云代码请求'未经授权'
- 如何将权限/授权数据传递到客户端Javascript
- Twitter API在jQuery AJAX中设置授权头
- AngularJs Cordova安卓应用程序中输入的4位密码PIN验证
- 如何在网络应用程序中使用Firebase进行用户授权
- 检查用户是否在Orchard CMS中获得授权
- 编写JavaScript库:如何授权方法
- Node.js和angular用户授权
- 应用程序引擎终结点:用于OAuth2授权的Javascript客户端库需要多个弹出窗口
- 使用声明式授权的“without_access_control”与 Cucumber 的@javascript
- 有没有办法使用浏览器从 RESTful 网络服务下载文件,该文件要求授权标头
- 有谁知道这行代码的输出是什么?$.get(“http://192.168.4.1:80/”, {pin:p}.
- 如何从按钮调用LinkedIn授权javascript
- Phantomjs 看不到 Twitter/Facebook 授权页面
- 如何触发带有第一个请求(Windows 身份验证)的授权标头的 AJAX 帖子
- 使用 JsonWebToken 授权标头获取图像
- 为什么不't浏览器在经过身份验证的XMLHttpRequest之后重用授权标头
- (“NetworkError:401未经授权)从JavaScript调用代码隐藏方法
- Google Apps Script 中基于 Twitter OAuth Pin 的授权“oob”