Express에서 Twitter API 사용

소개



후배가 TwitterAPI의 이야기를 하면 신경이 쓰였으므로, 두드려 보기로 했다.

Twitter Developer



개요



- 트위터 계정이 있다면 자신을위한 API 액세스 포인트를 만들고 트위터 API를 치십시오.



준비



Twitter 계정



계정 생성



※계정 보유자는 날린다

TwitterAPI 액세스 포인트 생성


  • TwitterDeveloper에 로그인
  • 오른쪽 상단 사용자 이름 풀다운에서 Apps로 비행
  • Create an app에서 앱 등록

    앱 등록 화면

  • 테스트이므로 ↓ 이런 느낌의 내용 ↓에서 등록


    품목

    설명


    앱 이름
    test
    자신이 만드는 앱의 이름

    Description
    just for test
    앱 설명

    웹사이트 URL
    htp : // st. 이 m
    앱 URL

    Sign in with Twitter
    enabled

    Callback URL
    http://localhost:3000
    서버 URL. 프로덕션 서버를 세우면 추가

    Terms of service URL


    Privacy policy URL


    조직 이름


    Organization website URL


    App usage
    test test test test test test test test test test test test test test test test test test test test test test test test test test
    자세한 앱 설명


    아래 Create
    4. 만들었으면 Keys and tokens 탭에서 Genrate key를 누릅니다.



    중요
    ↓이런 화면↓이 나오므로, Access tokenAccess token secret를 copipe&메모해 보존



    작성 완료
     

    4가지 사용
    - Api 키
    - Api secret key
    - 액세스 토큰
    - Access token secret

    Node.js



    Node.js 설치



    npm도 사용할 수 있도록 해 둡니다.
    Node.js 다운로드 사이트

    사용방법



    - API 참조에서 사용하려는 API를 찾습니다.



    이번에는 트렌드을 보기로 결정했습니다.
    HttpRequest 날리는 것만으로 좋은 것 같습니다.
    API Reference contents 
    GET trends/available   GET trends/closest
    
  • 설정은 npm 트위터 패키지이 간단하다
  • var Twitter = require('twitter');
    
    var client = new Twitter({
      consumer_key: '',
      consumer_secret: '',
      access_token_key: '',
      access_token_secret: ''
    });
    
    var params = {screen_name: 'nodejs'};
    client.get('statuses/user_timeline', params, function(error, tweets, response) {
      if (!error) {
        console.log(tweets);
      }
    });
    

    서버를 세워보세요



    사양



    서버의 URL을 두드리면 Twitter의 트렌드 결과가 우선 화면 가득 나온다.

    소스 코드



    package.json
    {
      "name": "twitter_api_test",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node ./index.js"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "express": "^4.17.1",
        "twitter": "^1.7.1"
      }
    }
    
    

    index.js
    // server settings
    const express = require("express")
    const server = express();
    const port = 3000
    
    // twitter settings
    const Twitter = require('twitter');
    // さっき作ったAPIの設定
    const API_KEY = "AAAAAAAAAA"
    const API_SECRET_KEY = "BBBBBBBBBB"
    const ACCESS_TOKEN = "CCCCCCCCCC"
    const ACCESS_TOKEN_SECRET = "DDDDDDDDDD"
    
    const twitter = new Twitter({
        consumer_key: API_KEY,
        consumer_secret: API_SECRET_KEY,
        access_token_key: ACCESS_TOKEN,
        access_token_secret: ACCESS_TOKEN_SECRET,
    });
    
    // routes
    server.get("/", function (req, res, next) {
        res.send("server is up")
    });
    
    server.get("/trends", function (req, res, next) {
        // ここでTwitterAPIを叩く
        twitter.get('trends/available', function (error, result, response) {
            if (error) {
                res.send(error)
            } else {
                res.send(result); // TwitterAPIの結果をそのまま返す
            }
        });
    })
    
    server.listen(port, function () {
        console.log('Listening on port ' + port)
    });
    

    결과


  • npm install 그렇다면 npm start
  • localhost:3000 방문
  • localhost:3000/trends 방문
    잘 작동했습니다.
  • 좋은 웹페이지 즐겨찾기