由于学院的微博需要发早安,晚安,而我经常忘记发,所以索性写个自动发微博的程序,放到服务器上。。。。。
略
名称随便取一个就行,分类和平台选择我们最熟悉的windows就可以了
应用地址随便填一个,安全域名这时候可以不填,也可以填。(安全域名只支持传统域名.com .cn 非传统域名.xyz等会提示错误)
还是说一下吧,现在用接口发微博发出来会带一个 #网页链接
强制带上一个链接,这个链接如果没有给就会报错,如果给了但不是安全域名的子链接还是会报错
微博的操作到此结束
代码如下(示例):
import requests
try:
from urllib.parse import urlencode
except ImportError:
from urllib import urlencode
API_KEY = '申请后给你的App Key'
REDIRECT_URI = '授权回调页的网址'
url = 'https://api.weibo.com/oauth2/authorize'
def get_url():
params = {
'client_id': API_KEY,
'redirect_uri': REDIRECT_URI
}
return "{0}?{1}".format(url, urlencode(params))
print(get_url())
输出结果
点击这个链接 之后点击授权 之后会跳转到一个新的网页
把code之后的红框里的东西复制下来
import requests
import json
try:
from urllib.parse import urlencode
except ImportError:
from urllib import urlencode
API_KEY = '申请后给你的App Key'
API_SECRET = '申请后给你的App Secret'
CODE = '刚才你复制的东西'
REDIRECT_URI = '授权回调页的网址'
access_token_url = 'https://api.weibo.com/oauth2/access_token'
params = {
'client_id': API_KEY,
'client_secret': API_SECRET,
'grant_type': 'authorization_code',
'code': CODE,
'redirect_uri': REDIRECT_URI
}
res = requests.post(access_token_url, data=params)
token = json.loads(res.text)
print(token)
输出结果
{
'access_token': 'xxx',
'remind_in': '157679999',
'expires_in': 157679999,
'uid': 'xxx',
'isRealName': 'true'
}
把’access_token’: ‘xxx’,中的xxx复制下来,5年之内就不用再次授权了
import requests
access_token = 'xxx'
url = "https://api.weibo.com/2/statuses/share.json"
params = {
"access_token": access_token,
"status": "文字+网址"
}
files={
"pic":open("图.jpg","rb")
}
res = requests.post(url,data = params, files = files)
错误:21322 重定向地址不匹配
检查授权回调链接是否填写
错误:appkey not bind domain
检查安全域名是否填写
错误:text not find domain!
检查要发送的内容是否包含链接,因为现在新浪微博强制要求要带链接。
完