Python 3.1 twitter 帖子已安装库,

发布于 2024-09-01 14:26:30 字数 269 浏览 3 评论 0原文

我希望能够从 python 3.0 发布 Twitter 消息。我看过的 twitter API 都不支持 python 3.1。由于后期程序只需要这个:

JSON: curl -u username:password -d status="your message here" http://api.twitter.com/1/statuses/update.json 

我想知道标准库是否可以对其进行格式化,以便可以发送消息。我的头脑说这应该是可能的。

I'd like to be able to post twitter messages from python 3.0. None of the twitter API I have looked at support python 3.1. Since the post proceedure only requires this :

JSON: curl -u username:password -d status="your message here" http://api.twitter.com/1/statuses/update.json 

I was wondering if it is possible with the standard libraries to format this so a message could be sent. My head says it should be possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜点 2024-09-08 14:26:30

试试这个:

import urllib.request
import urllib.parse
import base64

def encode_credentials(username, password):
    byte_creds = '{}:{}'.format(username, password).encode('utf-8')
    return base64.b64encode(byte_creds).decode('utf-8')

def tweet(username, password, message):
    encoded_msg = urllib.parse.urlencode({'status': message})
    credentials = encode_credentials(username, password)
    request = urllib.request.Request(
         'http://api.twitter.com/1/statuses/update.json')
    request.add_header('Authorization', 'Basic ' + credentials)
    urllib.request.urlopen(request, encoded_msg)

然后调用 tweet('username', 'password', 'Hello twitter from Python3!')

urlencode 函数为 HTTP POST 请求准备消息。

请求 对象使用 HTTP 身份验证,如下所述: http://en.wikipedia.org/wiki/Basic_access_authentication

urlopen< /a> 方法将请求发送到 Twitter。当您向其传递一些数据时,它使用 POST,否则使用 GET

这仅使用 Python3 标准库的部分内容。但是,如果您想使用 HTTP,则应该重新考虑使用第三方库。这个深入了解 Python 3 章节解释了如何以及为什么。

Try this:

import urllib.request
import urllib.parse
import base64

def encode_credentials(username, password):
    byte_creds = '{}:{}'.format(username, password).encode('utf-8')
    return base64.b64encode(byte_creds).decode('utf-8')

def tweet(username, password, message):
    encoded_msg = urllib.parse.urlencode({'status': message})
    credentials = encode_credentials(username, password)
    request = urllib.request.Request(
         'http://api.twitter.com/1/statuses/update.json')
    request.add_header('Authorization', 'Basic ' + credentials)
    urllib.request.urlopen(request, encoded_msg)

Then call tweet('username', 'password', 'Hello twitter from Python3!').

The urlencode function prepares the message for the HTTP POST request.

The Request object uses HTTP authentication as explained here: http://en.wikipedia.org/wiki/Basic_access_authentication

The urlopen methods sends the request to the twitter. When you pass it some data, it uses POST, otherwise GET.

This uses only parts of the Python3 standard library. However, if you want to work with HTTP, you should reconsider using third-party libraries. This Dive Into Python 3 chapter explains how and why.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文