Javascript 在使用passport授权后,如何在react中获取/请求推文
我已经成功地从这个github完成了授权阶段,在那里我复制了后端NodeJ和前端React文件,我想得到帮助,或者可能需要帮助指导我到一个站点,显示如何获取/请求推文,一旦执行了登录回调,将显示我的社交媒体显示图片 我一直在twitter网站上,从nodejs部分复制代码,以便尝试获取推文: 我在一个单独的tweet.js文件中进行了重构,将其导入App.js(App组件)中。下面是我导入推文组件的App.js代码: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
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授权的帮助下完成),其中应显示用户的推文。我将继续寻找一个我正在尝试做的例子