目标:使用托管网站和本地主机上运行的应用程序的API从我的Twitter帐户发送直接消息。假设我可以在两种情况下重复相同的过程。我已经闲逛了好几个小时,没有获得授权。
显然,要通过API发送Twitter DM,我必须以某种方式向Twitter API提供我的用户名和密码,然后才能授权它进行操作... 对吗?当然,我需要在Twitter API可以代表我行事... 对吗?
如果可以在浏览器中处理整个过程,我将使用Python或JavaScript发出请求。
现在,我的研究...
有趣的页面#1:Basic Auth
我不知道如何使用此页面上的信息来提供我的帐户凭据。与基本身份验证相关的所有StackOverflow研究都得出有关使用cURL的答案。我不想使用cURL,因为上下文是Web应用程序或本地运行的Python脚本。 (如果我可以从浏览器中的JavaScript脚本或localmachine上的Python文件发送cURL请求,那么也许可以,但是我对cURL一无所知。)我在StackOverflow上看到很多人说“基本身份验证”(如其折旧)已贬值,这似乎与“基本身份验证” twitter api文档页面的存在相矛盾...
无论哪种方法,判定:都没有用。
有趣的页面2:Twitter的API文档中的POST direct_messages
此页面对于通过API发送直接消息显然很有用,但是在我获得身份验证令牌之前,我无法使用该信息。我看到我需要提供一些值(YOUR_CONSUMER_KEY, USERS_ACCESS_TOKEN
)。
有趣的页面#3:OAuth 1.0a authentication
该页面指出:“ Twitter允许您通过三足式OAuth流获取用户访问令牌,通过将用户重定向到Twitter并让他们授权您的应用程序,您的应用程序可以获得访问令牌和访问令牌的秘密”] >
似乎似乎有用。我看到此过程已在许多Twitter-Automation网络应用程序中使用。您单击一个按钮,该应用即可使用您的帐户执行操作(例如删除推文,删除喜欢的消息)。因此,似乎可以在本地托管的Python脚本或远程Flask服务器上完成该过程了……不?
this page似乎有完整的答案。但是,我看不懂PHP!有人吗?
我目前正尝试在以here开头的可悲地不完整
“演练” this POST request之后执行此操作:now = str(time.time()) def generate_nonce(): return str(random.randint(0, 1000000)) request_headers = {"oauth_nonce": generate_nonce(), "oauth_callback": "www.google.ca", "oauth_signature_method": "HMAC-SHA1", "oauth_timestamp": now, "oauth_consumer_key": "my_apps_consumer_key", "oauth_signature": "Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", "oauth_version": "1.0"} y = requests.post("https://api.twitter.com/oauth/request_token", headers=request_headers) print(y, y.content, y.text)
[结果是400响应,其中
{"errors":[{"code":215,"message":"Bad Authentication data."}
作为内容/文本。我认为问题是我的oauth_signature
,但我不确定。
目标:使用托管网站和本地主机上运行的应用程序的API从我的Twitter帐户发送直接消息。假设我可以在两种情况下重复相同的过程。我是...
[我可以建议使用另一种方法,使用Pathfix,您会发现他们已经很好地分类了连接实现OAuth的复杂性,您所要做的就是获取Twitter clientid和secret并转到其应用程序。