シンプルなエクスプレスサーバーとTwitterのAPI
18881 ワード
我々は、与えられたユーザーから最近のつぶやき情報を得る簡単な急行サーバーを作成します.
あなたはTwitterの開発者アカウントを持つ必要があります.詳しくは
JavaScript の若干の知識コマンドライン使用量 アプリケーションのフォルダを作成しましょう.
サーバーを実行するには、次のコマンドを実行します.
コードの変更を行うたびに、サーバーを再起動するように
これを
次回は、データベースを使用してサーバを作成し、
また、Oshan Upreti Blogでこれを見つけることができます
完全なコード
必要条件:
mkdir TweetPuller
では、フォルダ内のファイルをいくつか追加しましょう.cd TweetPuller
touch .env index.js package.json
基本的にパッケージ.JSON依存関係のような情報、アプリケーションの名前、説明、および起動スクリプトを保持します.では、パッケージをインストールしましょう.簡単な方法でJSON.パッケージ。JSON
{
"name": "TweetPuller",
"version": "1.0.0",
"description": "Pull Tweets",
"main": "index.js",
"engines": {
"node" : "14.x"
},
"scripts": {
"start": "node index.js"
}
}
そうするべきだ.それから、我々も作成しました.環境変数を格納するenvファイル.秘密キーで作業している場合は、アプリケーションコードで公開する必要はありません.だから、基本的に、あなたの秘密キー/資格情報を格納することができます.envファイル.我々のケースでは、我々はあなたのTwitter開発者ポータルから取得するベアラートークンを格納します.そして、私たちがGithubの上でこのプロジェクトを発表するのを選んだ場合、私たちはGittignoreを使用してコミット中にこのファイルを無視します.env . env
BEARER_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
さあ、先に進んで、我々のアプリケーションで使用するいくつかの依存関係をインストールしましょう.一度これらの依存関係をインストールします.JSONが普及しつつある.だから、クールな滞在.npm install express dotenv needle
我々は、Expressサーバーを作成しているので、express
をインストールしています.Expressは単なるノードです.Webアプリケーションフレームワーク.環境変数を取得するためにdotenv
をインストールしています.envファイル.我々はTwitterのAPIの呼び出しを行うためにneedle
をインストールしています.インデックス.js
const express = require("express");
const dotenv = require("dotenv");
const needle = require("needle");
const app = express()
dotenv.config();
//Get Bearer Token from .env
const BearerToken = process.env.BEARER_TOKEN;
const endpointUrl = "https://api.twitter.com/2/tweets/search/recent";
//Get Tweets from Twitter API
const getTweets = async(id) => {
const params = {
'query': 'from:'+id+' -is:retweet',
'tweet.fields': 'created_at',
'expansions': 'author_id'
}
const response = await needle ('get', endpointUrl, params,{
headers: {
"User-Agent": "v2RecentSearchJS",
"authorization": `Bearer ${BearerToken}`
}
})
if (response.statusCode !== 200) {
if (response.statusCode === 403) {
res.status(403).send(response.body);
}
else {
throw new Error(response.body.error.message);
}
}
if (response.body)
return response.body;
else
throw new Error("Unsuccessful Request");
}
//This returns the object to client
const getTweetAnalysis = async(req, res) => {
try {
let twitterData =await getTweets(req.params.id);
//res.send(twitterData);
res.send(await analyze(twitterData));
} catch (error) {
res.send(error);
}
}
//Simple Analysis
const twitterObject = {}
const analyze = async(twitterData) =>
{
twitterObject["username"] = twitterData.includes.users[0].username;
twitterObject["name"] = twitterData.includes.users[0].name;
console.log(twitterData.data[0].text)
let averageCharacter = 0;
let averageWord = 0;
let totalCharacter = 0;
let totalWord = 0;
let texts = twitterData.data;
if(texts)
{
for(let index =0 ; index < twitterData.data.length ; index++)
{
totalCharacter += texts[index].text.length;
totalWord += texts[index].text.split(" ").length;
}
}
if(twitterData.meta.result_count > 0)
{
twitterObject["usesActively"] = true;
averageCharacter = totalCharacter/twitterData.meta.result_count;
averageWord = totalWord/twitterData.meta.result_count;
}
else
{
twitterObject["usesActively"] = false;
}
twitterObject["averageWordCount"] = averageWord;
twitterObject["averageCharacterCount"] = averageCharacter;
return twitterObject;
}
//API route
app.get("/api/tweet/:id",getTweetAnalysis);
//You can specify the port in .env file
app.listen(process.env.PORT||3000,()=>
{
console.log('Currently Listening to the Server')
})
module.exports = app
さて、我々が上記したことは、ユーザー名による最近のつぶやきを捜すために、検索つぶやきの1つを使用しました.そして、次に、ツイートを分析して、APIエンドポイントを通して若干の情報を提供するために、Expressサーバをつくりました.サーバーを実行するには、次のコマンドを実行します.
npm start
さて、クライアント側でこれをフックするか、Postmanのようなアプリケーションをサーバーをテストすることができます.エクストラチップ
コードの変更を行うたびに、サーバーを再起動するように
nodemon
依存関係をインストールできます.これを
package.json
のスクリプトに追加する必要があります."start:auto": "nodemon index.js"
次に、次のコマンドを実行します.npm run start:auto
あなたは、get
メソッドをゼロから使用して呼び出しを行う急行サーバーを構築することができます.次回は、データベースを使用してサーバを作成し、
post
とdelete
の呼び出しを行います.また、Oshan Upreti Blogでこれを見つけることができます
完全なコード
押尾衆 / トワイパルラー
Reference
この問題について(シンプルなエクスプレスサーバーとTwitterのAPI), 我々は、より多くの情報をここで見つけました https://dev.to/oshanoshu/a-simple-express-server-and-twitter-api-25eiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol