getData.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import messageCenter from '@/uilts/messageCenter/content';
  2. import { getCookie, isMobileTwitter } from '@/uilts/help'
  3. import axios from 'axios';
  4. const TwitterGetUserInfoByName = (params) => {
  5. let {screen_name} = params;
  6. let url = isMobileTwitter() ? `https://mobile.twitter.com/i/api/graphql/gr8Lk09afdgWo7NvzP89iQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D` : `https://twitter.com/i/api/graphql/mCbpQvZAw6zu_4PvuAUVVQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D`
  7. return axios.get(url, {
  8. headers: {
  9. "accept": "*/*",
  10. "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
  11. "authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA",
  12. "content-type": "application/json",
  13. "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\", \"Google Chrome\";v=\"101\"",
  14. "sec-ch-ua-mobile": "?0",
  15. "sec-ch-ua-platform": "\"Windows\"",
  16. "sec-fetch-dest": "empty",
  17. "sec-fetch-mode": "cors",
  18. "sec-fetch-site": "same-origin",
  19. "x-csrf-token": getCookie('ct0'),
  20. "x-twitter-active-user": "yes",
  21. "x-twitter-auth-type": "OAuth2Session",
  22. "x-twitter-client-language": "en"
  23. }
  24. })
  25. }
  26. const TwitterApiGetUserInfoByName = ({info, data}) => {
  27. TwitterGetUserInfoByName({screen_name: data.screen_name}).then(res => {
  28. messageCenter.send({ info, data: res.data.data, })
  29. }).catch(err => {
  30. messageCenter.send({ info, data: {err} })
  31. })
  32. }
  33. const TwitterApiGetUserListInfoByName = ({info, data}) => {
  34. let promiseList = [];
  35. let {userList} = data;
  36. for (let i = 0; i < userList.length; i++) {
  37. promiseList[i] = TwitterGetUserInfoByName({ screen_name: userList[i]['name'] });
  38. }
  39. Promise.allSettled(promiseList).then((res) => {
  40. let list = [];
  41. if (res && res.length) {
  42. let resList = res.filter(item => item.status == 'fulfilled');
  43. for (let i = 0; i < resList.length; i++) {
  44. let item = resList[i];
  45. if (item && item.value && item.value.data && item.value.data.data) {
  46. list.push(item.value.data.data)
  47. }
  48. }
  49. }
  50. messageCenter.send({info, data: { list: list }});
  51. }).catch(err => {
  52. messageCenter.send({info, data: { list: [] }})
  53. })
  54. }
  55. export default {
  56. TwitterApiGetUserInfoByName,
  57. TwitterApiGetUserListInfoByName
  58. }