Javascript 在使用passport授权后,如何在react中获取/请求推文

Javascript 在使用passport授权后,如何在react中获取/请求推文,javascript,node.js,reactjs,passport.js,twitter-oauth,Javascript,Node.js,Reactjs,Passport.js,Twitter Oauth,我已经成功地从这个github完成了授权阶段,在那里我复制了后端NodeJ和前端React文件,我想得到帮助,或者可能需要帮助指导我到一个站点,显示如何获取/请求推文,一旦执行了登录回调,将显示我的社交媒体显示图片 我一直在twitter网站上,从nodejs部分复制代码,以便尝试获取推文: 我在一个单独的tweet.js文件中进行了重构,将其导入App.js(App组件)中。下面是我导入推文组件的App.js代码: import React, { Component } from 'react

我已经成功地从这个github完成了授权阶段,在那里我复制了后端NodeJ和前端React文件,我想得到帮助,或者可能需要帮助指导我到一个站点,显示如何获取/请求推文,一旦执行了登录回调,将显示我的社交媒体显示图片

我一直在twitter网站上,从nodejs部分复制代码,以便尝试获取推文:

我在一个单独的tweet.js文件中进行了重构,将其导入App.js(App组件)中。下面是我导入推文组件的App.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>
    )
  }
}
import React,{Component}来自“React”
从“socket.io客户端”导入io
从“/OAuth”导入OAuth
从“./Loading”导入加载
从“./Footer”导入页脚
从“./Tweets”导入推文
从“/config”导入{API_URL}
导入“./App.css”
const socket=io(API_URL)/,{transports:['websocket']}
const providers=['twitter','google','facebook','github']
导出默认类应用程序扩展组件{
状态={
加载:正确
}
componentDidMount(){
socket.on('connect',function(){
console.log('已连接')
});
获取(`${API\u URL}/wake-up`)
。然后(res=>{
如果(res.ok){
this.setState({loading:false})
}
})
}
render(){
常量divStyles={
}
常量按钮=(提供程序、套接字)=>
providers.map(provider=>
)
返回(
{this.state.loading
? 
:按钮(提供程序、套接字)
}
{
按钮
? 
:尚未提取
}
)
}
}
这是tweet.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>*/

import React,{Component}来自'React';
const request=require('request');
const util=require('util')
const get=util.promisify(request.get);
const endpointURL=新URL('https://api.twitter.com/labs/1/tweets');
导出默认类Tweets扩展组件{
陈述={
推文:“”
}
componentDidMount(){
异步函数getRequest(){
常量参数={
ID:'TLgXKh7bO0H_t9DeAAAq',
格式:'详细',
};
const req=await get({url:endpointURL,qs:params,json:true,mode:'cors'});
如果(请求正文){
返回请求主体;
}否则{
console.log('不工作')
}
}
(异步()=>{
试一试{
const response=wait getRequest();
控制台日志(响应);
}捕获(e){
控制台错误(e)
}
})();
}
render(){
返回(
    {this.state.tweets ?this.state.tweets.map(el=>(
  • {el}
  • ) :未获取}
) } } /* */

我是否需要一个数据库,因为我正试图显示几个tweets的列表,即列出10条tweets?非常感谢您的帮助,因为我已经在这方面停留了一段时间。

请提出一个具体的问题,并提供一个突出您的问题的解决方案。感谢您的回复,我正在尝试创建一个web应用程序,它会在收到实时推文时显示一堵墙。用户登录其凭证,如上面提供的链接所示(在passportjs授权的帮助下完成),其中应显示用户的推文。我将继续寻找一个我正在尝试做的例子