Как мне получить / запросить твиты в ответ после авторизации с паспортом - PullRequest
0 голосов
/ 21 января 2020

Мне удалось завершить этап авторизации с этого github https://github.com/funador/react-auth-client, где я скопировал файлы Backact nodejs и front-end React, я хотел бы помочь или, возможно, помочь направить меня на сайт отображение того, как извлекать / запрашивать твиты после того, как обратный вызов от входа в систему был выполнен, в результате в моем социальном медиа Показать картинку для показа.

Я был на сайте Twitter и скопировал код из части nodejs чтобы попытаться получить твиты: https://developer.twitter.com/en/docs/labs/tweets-and-users/quick-starts/get-tweets

, и я изменил рефакторинг, чтобы выглядеть так на отдельном файле твита. js для импорта в приложение. js (Приложение составная часть). Вот мое приложение. js код, куда я импортировал мой компонент твита:

import React, { Component } from 'react'
import io from 'socket.io-client'
import OAuth from './OAuth'
import Loading from './Loading'
import Footer from './Footer'
import Tweets from './Tweets'
import { API_URL } from './config'
import './App.css'
const socket = io(API_URL) //,{transports: ['websocket']}
const providers = ['twitter', 'google', 'facebook', 'github']

export default class App extends Component {

  state = {
    loading: true
  }

  componentDidMount() {

    socket.on('connect', function(){
      console.log('connected')
    });

    fetch(`${API_URL}/wake-up`)
      .then(res => {
        if (res.ok) {
          this.setState({loading: false})
        }
      })
  }

  render() {
    const divStyles = {

    }
    const buttons = (providers, socket) =>
      providers.map(provider =>
        <OAuth
          provider={provider}
          key={provider}
          socket={socket}
        />
      )

    return (
      <div className='wrapper'>
        <div className='container'>
          {this.state.loading
            ? <Loading />
            : buttons(providers, socket)
          }
        </div>
{
buttons
? <Tweets provider='twitter' />
: <div> Hasnt fetched</div>
}
        <Footer />
      </div>
    )
  }
}

Это файл твита. js как таковой:

import React, { Component } from 'react';
const request = require('request');

const util = require('util')
const get= util.promisify(request.get);
const endpointURL = new URL('https://api.twitter.com/labs/1/tweets');

export default class Tweets extends Component {
state={
  tweets:''
}
componentDidMount(){
  async function getRequest(){
    const params = {
      ids: 'TLgXKh7bO0H_t9DeAAAq',
      format: 'detailed',
    };
    const req = await get({url:endpointURL, qs: params, json:true, mode: 'cors'});
    if( req.body ){
      return req.body;

    } else {
     console.log('not working working')
    }

  }

  (async ()=>{
    try{
      const response = await getRequest();
      console.log(response);
    } catch(e){
      console.error(e)
    }
  })();

  }






  render() {

    return(
      <div>
        <ul>
        {this.state.tweets
          ? this.state.tweets.map(el=>(<li>{el}</li>))
          : <div>Didnt fetch</div>}
      </ul>
    </div>
    )
  }
}


/*<div>


      </div>*/

Нужна ли мне база данных? как я пытаюсь отобразить список из нескольких твитов, т.е. 10 твитов в списке? Буду очень признателен за любую помощь, так как я застрял на этом некоторое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...