666.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python
  2. import urllib.request
  3. import urllib.parse
  4. from sina.miniweibo import APIClient
  5. def weibo():
  6. APP_KEY="2911889655"
  7. APP_SECRET="a87782ecfc82aa969f2f99ee285777bd"
  8. CALL_BACK="https://api.weibo.com/oauth2/default.html"
  9. AUTH_URL="https://api.weibo.com/oauth2/default.html"
  10. USER_ID="5124480538"
  11. PASSWD="mini111"
  12. client=APIClient(app_key=APP_KEY,app_secret=APP_SECRET,redirect_uri=CALL_BACK)
  13. refer_url= client.get_authorize_url()
  14. print("refer url:"+refer_url)
  15. cookies=urllib.request.HTTPCookieProcessor()
  16. opener = urllib.request.build_opener(cookies)
  17. urllib.request.install_opener(opener)
  18. postdata={
  19. "client_id":APP_KEY,
  20. "redirect_uri":CALL_BACK,
  21. "userId":USER_ID,
  22. "password":PASSWD,
  23. "IsLoginSina":"0",
  24. "action":"submit",
  25. "response_type":"code",
  26. }
  27. headers={
  28. "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36",
  29. "Host":"api.weibo.com" ,
  30. "Referer":refer_url
  31. }
  32. req=urllib.request.Request(
  33. url=AUTH_URL,
  34. data=urllib.parse.urlencode(postdata).encode("utf-8"),
  35. headers=headers
  36. )
  37. try:
  38. resp=urllib.request.urlopen(req)
  39. print("callbackurl is %s" % resp.geturl())
  40. pat = "code=(.*?)%"
  41. print(resp.geturl())
  42. code = input("input the retured code : ")
  43. print("code is %s"% code)
  44. except Exception as e:
  45. print(e)
  46. r=client.request_access_token(code)
  47. access_token=r.access_token
  48. expires_in=r.expires_in
  49. print("access_token:",access_token)
  50. print("expires_in:",expires_in)
  51. client.set_access_token(access_token, expires_in)
  52. return client,access_token
  53. client,access_token= weibo()
  54. #调用接口:(/转为__)客户对象,方法,接口名,接口目录,接口名(参数)
  55. rst=client.get.statuses__repost_timeline(id="FsMuBAG3n")
  56. print(rst)
  57. rst1=client.get.statuses__user_timeline(source="2911889655")
  58. print(rst1)