2021年11月14日日曜日

OutSystemsでTwitterのトレンドを取得する

OutSystemsでTwitterのトレンドを取得する方法をまとめておく。
トレンド取得APIの公式はここ

各ユーザ毎で行う方法と、アプリケーションとして行う方法の二種類あるが
今回はただトレンド情報を取得したいだけなので、ユーザ情報は使わず、
アプリケーションで行う方法をとる。


Twitter側の設定

API利用申請(https://developer.twitter.com/en/apps/)を行う。
全部英語だし、どんなアプリを作るのかの説明なども英語で書かないといけないから
結構面倒だった。

アプリ作成まで行い、APIキー発行できたら
Bearer Tokenのコードをコピーしておく

Twitter側の設定はここまで


OutSystems側の実装

TwitterAPIをたたくために、REST APIを作る


MethodURLは「Get」で
  https://api.twitter.com/1.1/trends/place.json?id=23424856
Idは地域IDを指しており、「23424856」は日本のことなので固定でいい。

Header/Aushのタブでは
「Authorization」を引数にする。ここでTwitter側で取得したBearer Tokenを使う。


テストしておく。
Authorizationには、「Bearer <Bearer Token>」を入れる。
Testを押下すると、Response覧に結果が得られる。
成功したらFINISH押下で、トレンドを取得するAPIは完成!


注意が必要なのは「Bearer」の後ろはスペースは1つだけ。
私はスペースを2つ入れてしまっていて、なかなか取得成功できなかった(笑)
//ずっとこういうエラーが出てた。。(直訳:トークン無効か期限切れ)
HTTP/1.1 401 Unauthorized
{
  "errors": [
    {
      "code": 89,
      "message": "Invalid or expired token."
    }
  ]
}

APIの呼び出し方

Bearer Token自体は、サイトプロパティなどの変数に保存しておき、
RESTAPIの呼び出し時の引数を「"Bearer " + Site.BearerToken」としておく。
トレンド情報の構造体は「TrendItem」という名前に入っているので、このListを返すようにして、Assignで「GetTrend.Response.Current.Trends」を入れてやれば
トレンドの一覧取得が出来上がる


このリストを表示させてやれば画面も完成!


0 件のコメント:

コメントを投稿