【CoreTweet】Twitterプロフィールリサーチを自動化してみた【C#】

こんにちは、松井です。

「Twitterのプロフィールを改良したい!」
と思って、参考資料集め用のリサーチツールを作ってみました。

 

キーワードを入力して、検索ボタンを押すと、
それに関連したアカウントのプロフィールを、ずらりと一覧でみることができます。
(デザインがダサめなのは、今後の発展課題です!)

そんなTwitterプロフィールリサーチ用のツールです。

実は、プロフィールはそんなに重要じゃない話。

こんなツールを作っておいてなんですが、

僕は、プロフィールをちゃんと整えることは、

「大事っちゃあ、大事だけど、マストではない」

と思ってます。笑

 

ホントは、プロフィールよりも、

普段の発信しているツイートの内容や
ブログの内容のほうが大事です。(情報発信ですから!)

でも、
「プロフィールを整える」のって、

「仕事で新しい取引先にいく時に、
ちょっと身だしなみをキレイにしていく」

ようなものだと、僕は思ってるんですよね。

 

というのも、

仕事で、新しい取引先にいくときを想像してみると、

その日の朝は、

いつもより綺麗にシャツにアイロンをかけて、
スーツについたホコリをコロコロでとって、
革靴を少し磨いて、髪もワックスでいつもより丁寧に

キレイに、キメていきます。

 

それと一緒です。

 

なぜ、キレイにしてくかって、

同じ会社で働いている上司や同僚なら、
自分のことを

普段のふるまいや、普段の会話の内容、普段の仕事の出来

などから、
自分の「中身」で評価・判断してくれますけど、

他社の取引先のかたが相手では(初対面であればなおさら)、そうもいかないからです。

 

「ひとは、見た目が9割」
なんて本もありますけど、

やっぱり、初対面のときの第一印象って、大事です。

 

第一印象で、
「この人できるぞ!」って思ってもらえたら、

そのあとの商談や打ち合わせのときも、
相手に話を聞いてもらいやすくなりますし、

逆に、

「なんだこいつ、シャツもヨレヨレで、だらしないやつだなぁ」

なんて思われて呆れられたときには、
(相手によっては、)
まともに話を聞いてくれないかもしれません。

(もちろん、第一印象〝だけ〟良くても、仕方がないですが!)

 

つまり、

中身を見てもらうためには、外見を整えるのも重要で、

 

身だしなみを整えるなどといった

〝礼〟と〝儀〟というのは、

(身内や家族、友人などの)自分をよく知ってくれてるひとよりも、

外のひとに対して、重要なのです。

 

誰もが、ひとのことを、
中身(や性格、考え方)をみて、判断しくれるわけじゃないですから。

 

そう考えると、

自分の話(自分の発信)を、
相手に(読者に)聞いてもらいたいのなら、

ある程度、外見(プロフィール)は整えておかねば、と思います。

Twitterの〝礼〟と〝儀〟を知る。

そのように考えると、
プロフィールの役割とは、

相手に(読者に)、

自分の話を聞いてもらうための
土台やきっかけをつくること

にあるのかな、と思います。

(自分の深い話は、ツイートやブログで読んでもらえばよいので。)

 

だからこそ、プロフィールは、

自分が相手に(読者に)届けたい想いをこめて

作る必要があると思ってます。

 

だって、これから先、

そのプロフィールをみて

あなたの読者たちが集まってくるのですから。

 

なので、プロフィールに

自分の想いをしっかり込めて書けば、
その想いに共感してくれたひとが集まりますし、

ブランディングや権威性のためなどといって
本心でもないことを書けば、

ホントは思ってもない
嘘の自分に共感したひとが集まります。

(嘘の自分に共感して集まってくれたひとの前では、
嘘の自分を演じ続けないといけません。)

 

つまりは、プロフィールには、

自分が届けたい想いを、ちゃんと込めましょう!

っていう話です。

 

そこで話は、リサーチの話に戻りまして…、

やはり、Twitterのプロフィールにも上手くいく〝型〟が存在します。

上手くいっているプロフィールの紹介文やバナーのデザインのパターンがあります。

 

だからこそ、
既に、情報発信でうまくいっているひとのプロフィールを分析して、

どんなデザインのバナーがよいのか、
どんな説明文が良いのかなどを知る必要があると思っています。

 

そして、それらの型を知ることが、

Twitterの〝礼〟と〝儀〟を知ることなのかな

と、僕は思います。

 

読者に自分の想いを届けるための

〝礼〟と〝儀〟を身につけていく。

 

そして、ある程度、その型が分かってきたら、

あとは、

「では、自分ならどんな想いを込めるかな?」

と、考えることに時間を使っていけますよね。

 

どれだけ良い〝型〟を知ったとて、
そこに中身を込めるのは、自分です。

どこまでいっても、〝型〟は、
輪郭、や枠(フレーム)、入れ物にすぎませんから。

 

これは、

その自分の想いを込める時間を作るための

リサーチツールです。

 

僕もこれから、Twitterの〝礼〟と〝儀〟を学んでいかねば!って感じです。(^O^)

 

【告知!】

近々、このツールをリリースしようと思っています。

とりあえず、お試し版で期間限定リリースの予定です。

もし興味のある方は、
こちらから僕のメルマガ登録しといてもらえると、
最速で、通知させていただきます。

>>このツールのリリース情報を受け取る。

今後、機能も増やしていくつもりなので、
「こんな機能ほしい!」などのリクエストもあったら、
登録後に届いたメールに、ご返信ください^^

 

さて、ここから先は、ガッツリ開発のお話をしていきます。

今回のツール開発の技術的なお話。

開発環境など

ざっくりいうと、(詳細は、下記参照。)
C#で、CoreTweetつかって、Twitter APIを読み込んで、
ASP.Net Core Web APIで、自作のWeb API化しています。

  • OS:Windows 10
  • 開発環境:Microsoft Visual Studio Community 2022 (64 ビット)
  • フレームワーク:ASP.Net Core Web API(C#)
  • Twitter情報の取得:Twitter API + CoreTweet

    (※自作のWeb API化しているのは、
    今後、アプリのリリースを考慮しているからと、さらに機能を追加していくためです。
    それらの理由がなければ、今回の機能であれば、コンソールアプリでも問題なく実装できます。)

    実装コードの説明は、CoreTweetの使い方に終始し、Web APIやフロントエンドについては省略します。
    (もし、これらの説明にも需要があったら、リクエストください!>>@OH1de

    実装コード

    コードはシンプルですが、こんな感じ。

    コンストラクタ時に、Twitter APIのトークンを作成して、クラス内で使いまわすようにしてます。

    Twitter APIのトークンの作成に必要なキーを取得するためには、Twitter APIへの申請が必要です。それは次の章で。

    using CoreTweet;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Web;
    
    namespace OverBeliefApi.Models.Twitter
    {
        public class TwitterService
        {
        private readonly string APIKey = "xxxxxxxxxxxxxxxx"; 
        private readonly string APISecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
        private readonly string APIToken = "xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx";
        private readonly string APITokenSecret = "xxxxxxxxxxxxxxxx";
    
        private Tokens Tokens;
        private OAuth.OAuthSession Session;
        /// <summary>
        /// Twitterサービスクラスのコンストラクタ
        /// </summary>
        public TwitterService()
        {
            this.Session = OAuth.Authorize(APIKey, APISecret);
            this.Tokens = CoreTweet.Tokens.Create(APIKey, APISecret, APIToken, APITokenSecret);
            this.Tokens.Statuses.HomeTimeline(tweet_mode => "extended");
        }
    
        /// <summary>
        /// テキスト検索の結果ツイートを取得する。
        /// </summary>
        /// <param name="searchText">検索キーワード</param>
        /// <param name="count">検索結果の最大ツイート数</param>
        /// <returns>結果ツイート</returns>
        public List<Status> GetTweetsBySearchText(string searchText, int count)
        {
            return this.Tokens.Search.Tweets(count: count, q: searchText).ToList();
        }
    }

    実装の課題点

    ・特定のツイートにいいね・リツイートしたユーザーの一覧が取得ができない。

    特定のツイートを指定して、そのツイートに反応しているひとにどんな属性のひとが多いのか分析できると面白いと思ったが、(CoreTweetでは、)ツイート指定で、ツイートへいいね・リツイートしたユーザーの一覧を取得する方法が分からなかった。

    ・特定のユーザーのフォロワー、フォローしているユーザーの一覧が取得できない。

    上とほぼ同じ理由で取得したかったが、取得方法が分からなかった。

     

    次は、Twitter APIのキーの取得方法と、注意点です。

    Twitter APIについてと、分析ツール開発の注意点。

    はじめに、Twitter APIのお話。

    まず、Twitter APIを利用するためには、ライセンスの申請を英語でしないといけません。

    申請は、こちらのサイトからできます。>>Twitter API

    英語ってのが、なかなか手間ですが、そこは頑張りましょう。
    (※僕は、こちらの記事を参考に、英文を作成して申請しました。
    >>Twitter API利用申請の例文からAPIキーの取得まで詳しく解説

    ちなみに、
    Twitterサービスへの、Webスクレイピングは禁止されています。

    Webスクレイピングは、
    プログラムで、TwitterやAmazonなどのWebページにアクセスして、
    そこのページに書かれている情報をかき集めれて便利なのですが
    禁止されてるなら使えません。

    なので、僕は、今回の開発で、
    Twitterが公式で出している「Twitter API」を、利用することにしました。

    実は、元々、今回の開発は、
    Webスクレイピングで実装しようと思っていましたが、

    Twitterの利用規約に以下のような文言があったために、断念してます。

    Twitterの事前の承諾なしにスクレイピングを行うことは明示的に禁じられています。

    僕はあまり利用規約を意識して読んだことがなかったこともあり、
    TwitterがWebスクレイピング禁止なのは、
    今回のツール開発の技術調査のタイミングで、はじめて知りました。

    Twitterに限らず、Webサービスの分析ツールをつくる際には、
    そのサービスの利用規約をちゃんと確認しないとな、という学びになりました。

    プログラミング技術は、
    あらゆるモノを生み出すことのできる技術ですが、

    それと同時に、
    何を生み出すかの責任も伴っている技術だと、改めて思いました。

     

    では、今日はこのへんで。

    ありがとうございました!

     

    P.S.

    (繰り返しにはなりますが、)

    近々、このツールをリリースしようと思っています。

    とりあえず、お試し版で期間限定リリースの予定です。

    もし興味のある方は、
    こちらから僕のメルマガ登録しといてもらえると、
    最速で、通知させていただきます。

    >>このツールのリリース情報を受け取る。

    今後、機能も増やしていくつもりなので、
    「こんな機能ほしい!」などのリクエストもあったら、
    登録後に届いたメールに、ご返信ください^^

     

    P.S.2.

    ・おすすめ記事
    >>DRM・仕組み化・自動化。令和は『ITの進化の刻(とき)』にある。

    便利で楽なツールをつくるだけの時代は、終わった。