Мне удалось завершить этап авторизации с этого 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 твитов в списке? Буду очень признателен за любую помощь, так как я застрял на этом некоторое время.