このサンプルでは、GNIP 完全アーカイブ検索を使用して、特定のトピックに関するアクティビティ量と最新のツイートを表示します。また、Twitter の widgets.js を使用してツイートをレンダリングします。
いつものように、Twitter プラットフォーム上で開発を行う場合は、開発者契約とポリシーに従う必要があります。
このサンプル コードを実行するには、次のコマンドを使用して必要なライブラリをインストールします。
`pip install -r requirements.txt`
Twitter アプリ (https://apps.twitter.com/) を作成します。また、コールバック URL が入力されていることを確認してください。これは、開始時に http://localhost:9000 を指すことができます。これが含まれていない場合、ログイン時にクライアント認証エラーが発生します。
次のセクションの app/settings_my.py で API および GNIP 資格情報を指定します。
GNIP_USERNAME = 'YOUR_GNIP_USERNAME'
GNIP_PASSWORD = 'YOUR_GNIP_PASSWORD'
GNIP_SEARCH_ENDPOINT = 'YOUR_GNIP_FULL_ARCHIVE_SEARCH_ENDPOINT'
データベースを初期化するには、 tweet-search
ディレクトリから を実行します。
python manage.py syncdb --settings=app.settings_my
次に、次を実行します。
python manage.py migrate --settings=app.settings_my
サーバーを起動するには、 tweet-search
ディレクトリから次のコマンドを実行します。
fab start
ブラウザを開いて http://localhost:9000 に移動します。
GNIP_SEARCH_ENDPOINT は完全なアーカイブ検索 URL への URL であり、形式はhttps://data-api.twitter.com/search/fullarchive/...
であることに注意してください。 30 日間の検索を使用する場合は、 gnip_search_api.py
ファイルを開き、「30 DAY」という用語を検索し、指示に従います。 (完全なアーカイブ検索 URL ではなく、30 日間の検索 URL を使用する必要もあります。)
セキュリティのため、このコード サンプルには、次のいずれかのユーザーの Twitter 認証トークンをクリアするバッチ プロセスが含まれています。
プロセスを実行するには、次のコマンドを実行するだけです。
`fab invalidate'
Heroku へのデプロイはさらに簡単です。
Twitter アプリを作成する (https://apps.twitter.com/)
下の Heroku ボタンをクリックしてください
Heroku のインストール中にプロンプトが表示されたら、次のものを指定します。
デプロイ後、Twitter アプリ設定でコールバック URL がhttp://your-app-name.herokuapp.com/complete/twitter
であることを確認します。
データベースを同期するには、Heraku CLI を使用して次のコマンドを実行します。
heroku run python manage.py migrate --app your-app-name
ブラウザを開いて、デプロイで指定された URL (http://your-app-name.herokuapp.com) に移動します。
管理者ユーザーを作成するには、次の Heroku CLI コマンドを使用します。
heroku run python manage.py createsuperuser --username=USERNAME --email=EMAIL --app your-app-name
次に、管理コンソールからログインし、それに応じて最初の Twitter ログイン ユーザーを更新します。
トークン無効化スクリプトが Heroku で適切に動作することを確認するには、マシンから次のコマンドを実行します。
`heroku run fab invalidate --app=MY_APP_NAME'
これが適切に実行される場合は、次の手順に従って、スケジュールされたジョブとして Heroku 上で実行します。
heroku addons:add scheduler:standard --app=MY_APP_NAME
fab invalidate
と入力しますHeroku アプリのログの出力を表示して、実行が成功したことを確認します。
実行するいくつかのサンプルクエリ:
#MLB #SFGiants
@TwitterDev -(is:retweet)
walking dead (has:media)
UI には、詳細オプションを表示するリンクがあります。具体的には:
(has:media)
が追加されますGNIP 検索では、クエリに追加する関連用語を提案することもできます。 [関連用語] リンクをクリックすると、クエリに追加の用語を提案 (および追加) するためのドロップダウンが表示されます。