12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import messageCenter from '@/uilts/messageCenter/content';
- import { getCookie, isMobileTwitter } from '@/uilts/help'
- import axios from 'axios';
- const TwitterGetUserInfoByName = (params) => {
- let {screen_name} = params;
- 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`
- return axios.get(url, {
- headers: {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
- "authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA",
- "content-type": "application/json",
- "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\", \"Google Chrome\";v=\"101\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-csrf-token": getCookie('ct0'),
- "x-twitter-active-user": "yes",
- "x-twitter-auth-type": "OAuth2Session",
- "x-twitter-client-language": "en"
- }
- })
- }
- const TwitterApiGetUserInfoByName = ({info, data}) => {
- TwitterGetUserInfoByName({screen_name: data.screen_name}).then(res => {
- messageCenter.send({ info, data: res.data.data, })
- }).catch(err => {
- messageCenter.send({ info, data: {err} })
- })
- }
- const TwitterApiGetUserListInfoByName = ({info, data}) => {
- let promiseList = [];
- let {userList} = data;
- for (let i = 0; i < userList.length; i++) {
- promiseList[i] = TwitterGetUserInfoByName({ screen_name: userList[i]['name'] });
- }
- Promise.allSettled(promiseList).then((res) => {
- let list = [];
- if (res && res.length) {
- let resList = res.filter(item => item.status == 'fulfilled');
- for (let i = 0; i < resList.length; i++) {
- let item = resList[i];
- if (item && item.value && item.value.data && item.value.data.data) {
- list.push(item.value.data.data)
- }
- }
- }
- messageCenter.send({info, data: { list: list }});
- }).catch(err => {
- messageCenter.send({info, data: { list: [] }})
- })
- }
- export default {
- TwitterApiGetUserInfoByName,
- TwitterApiGetUserListInfoByName
- }
|