Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

Twitterのアクセストークン等の取得方法とDirectメッセージを取得するために必要な設定

Twitter API、楽しくて便利なんですが、いつもこのAccess Tokenの取得・設定方法を忘れてしまって、調べ直している気がするので、個人的なメモとして残しておきたいと思います。

後、Permissionを変更しないと、DirectMessageが取得できないので、そのあたりにも触れながら。

最終的には以下の4種類の情報を取得することをこの記事では目的にしています。

・Consumer Key (API Key)

・Consumer Secret (API Secret)

Access Token

Access Token Secret

Twitter APPsの作成

まず最初に以下のページにアクセスして、Twitter APPsを登録します。

https://apps.twitter.com/

(このURLをいつもGoogleで探して見つけられないんですよね・・・。)

[Create New App]をクリック

f:id:sugimomoto:20171230173118p:plain

Application Detailsとして、それぞれの情報を適当に入力します。

気をつけるのはCallbackくらいでしょうか。私は今回ローカルのアプリケーションからデータ取得を行う関係で[http://127.0.0.1/ ]を設定しました。

f:id:sugimomoto:20171230173131p:plain

アプリケーションが作成された後、[Keys and Access Tokens]をクリックすると、Consumer KeyとSecretが取得できます。

その画面のまま、Access TokenをTwitter アプリ上から生成することができるので、画面下の[Create my access token]をクリックします。

f:id:sugimomoto:20171230173138p:plain

以下のように生成することができました。

f:id:sugimomoto:20171230173149p:plain

Direct Meesageを取得するためのPermissonの変更

Twitter APPは初期状態でDirect Meesageにアクセスすることができないので、Direct Messageを取得したい場合は、Permissionを変更する必要があります。

先程の画面のメニューから[Permission]を選択し、Accessで[Read,Write and Access direct messages]を選択し、[Update Settings]をクリックします。

f:id:sugimomoto:20171230173154p:plain

ちなみにメッセージで表示されているとおり、権限変更後、再度Access Tokenを生成する必要があります。

前の[Keys and Access Tokens]の画面に戻って、[Regenerate My Access Token and Token Secret]をクリックし、Access Tokenを再生成しておきましょう。

f:id:sugimomoto:20171230173201p:plain

取得したAccess TokenとCData Twitter Excel-addinを使ってデータを取得してみた

せっかく取得したアクセストークンなので、以下のCData Twitter Excel-addinを使って、Excelへデータを読み込んでみたいと思います。

CData Twitter Excel-addinは以下のページからダウンロード可能です。

https://www.cdata.com/jp/drivers/twitter/excel/

ちなみに、CData Twitter Excel-addinはExcelからTwitterのデータの取得・作成・更新ができるツールです。

アドインをインストール後、Excelの[CData]タブから[取得元Twitter]をクリックします。

f:id:sugimomoto:20171230173220p:plain

クリック後、接続情報を入力するダイアログが開くので[Callback URL][OAuth Access Token][OAuth Access Token Secret][OAuth Client Id][OAuth Client Secret]を入力します。

[Callback URL]には[http://127.0.0.1/

[OAuth Client Id][OAuth Client Secret]にはConsumer KeyとCunsumer Secretをそれぞれ入力してください。

f:id:sugimomoto:20171230173229p:plain

これだけで接続設定は完了です。

試しにTimelineのTweetsを取得してみます。

テーブル一覧から[Tweets]を選択して[OK]をクリック

f:id:sugimomoto:20171230173237p:plain

以下のようにTwitter Time lineの情報が取得できました。

f:id:sugimomoto:20171230173243p:plain

User 名で絞り込みたいときはFrom_User_Screen_Nameを使うといい感じです。試しに私のDynamics発言を集めてみました。

SELECT * FROM [CData].[Twitter].[Tweets] where From_User_Screen_Name = 'sugimomoto' and Text like '%dynamics%' LIMIT 100

f:id:sugimomoto:20171230173251p:plain

ただし、安易にクエリを実行しすぎると、APIの利用制限に引っかかってしまうので、注意しましょう。

キャッシュ機能もあるので、ローカルのDBなどにReplicateすると幸せな感じに分析できるかもです。