error 10006
code使用如下代码一直报10006错误,我起初以为是weibo封锁了接口。查百度发现有人说是appkey过期,过期是不可能的,我的key是当天申请的。
u8 = \'https://api.weibo.com/2/statuses/public_timeline.json\'
d8 ={"access_token":"xxxx",
}
r8 = s.get(u8,data=d8)
print r8.content
{"error":"source paramter(appkey) is missing","error_code":10006,"request":"/2/statuses/public_timeline.json"}
使用官方API调测工具发现同样的“参数”是可以用的。因此把data换为params试一下,果然成功了!r8 = s.get(u8,params=d8)
给某人最新微博评论
- 需要检测ta的微博数(默认不删博),如果大于上次检测的值,就
_comment(); - 评论接口需要单条微博的ID;
- 综上两点,使用domain_show接口最合适
几点注意
- 未审核通过的应用,token有效期是一天;
- 官方说
/share.json产生的内容仅测试号自己可见,实际上其他人也能看到;
weibo.py
# -*- coding: utf-8 -*-
"""
Created on Fri May 25 09:20:25 2018
微博评论
@author: hndx
"""
import requests
import random
from kvdb import kv,bkt
s = requests.session()
u3 = \'https://api.weibo.com/2/comments/create.json\'
def _comment(wbid):
fo = open("static/tt.py", "r")
lis = fo.readlines() #土味情话
fo.close()
kv.set(\'jlwb_comments\',kv.get(\'jlwb_comments\')+1)
d3 = {"access_token":"xx",
"comment":lis[random.randint(0,68)],
\'id\':wbid }
s.post(u3,data=d3)
return \'done comment\'
def _check(): #检查是否有新微博
u7 = \'https://api.weibo.com/2/users/domain_show.json\'
d7 ={"access_token":"xx",
\'domain\':\'xx\' }#微博个性域名
r7 = s.get(u7,params=d7)
j7 = r7.json()
if kv.get(\'jlweibo\') < j7["statuses_count"]: #如果有新微博
kv.set(\'jlweibo\',j7["statuses_count"])
_comment(j7["status"][\'id\'])
else:
return \'no new weibo\'
def _jay(): #instagram搬运
pic_url = \'xx\'
ask_url = \'xx\'
r = s.get(ask_url)
if not int(r.json()[\'instagram\'][0]): #是否有新内容
return \'no new insta-Jay\'
else:
kv.set(\'jay_insta\',kv.get(\'jay_insta\')+1)
jay_text= r.json()[\'instagram\'][2]
wb_url = \'https://api.weibo.com/2/statuses/share.json\'
d2 = {"access_token":"xx",
"status":"[Jay]"+jay_text+" xx" }
jay_pic = s.get(pic_url)
open(\'/s/jay/jay.jpg\', \'wb\').write(jay_pic.content)
files={"pic":open("/s/jay/jay.jpg","rb") }
rs = s.post(wb_url,data=d2,files=files)
return rs.content