menu
ホーム > twitter > Twitter OAuth 簡単接続 REST API を PHP で活用!

Twitter OAuth 簡単接続 REST API を PHP で活用!

Twitter API
【2017/9 版】Twitterアプリケーションの登録から、OAuth接続による PHP × Twitter REST APIs の呼び出し方法をご紹介します。ホームタイムラインの取得、ツイートの投稿、画像付きツイートの投稿、複数画像付きツイートの投稿、これらのウェブアプリケーションサンプルコードを掲載。1つのファイルを読み込むだけの簡単設定です。


Twitter API 利用してサービスを作ろう!

  • Twitter のデータを使って面白いサービスを作りたい!

Twitter API は、一般の Twitter 利用者が Twitter 内部のデータを呼び出し利用することが出来るサービスのことです。Twitter のデータを使って面白いサービスを作りたい!こんな場合に Twitter API は活用できます。API は Twitter に限らず、多くのサービスで提供されている仕組みです。

API(エーピーアイ) とは【Application Programming Interface:アプリケーション・プログラミング・インタフェース】の略称で、コンピュータープログラムであるOS(オペレーティングシステム)やソフトウェアなどの 機能 や データ を、外部のプログラムから呼び出して利用することが出来るようにした手順やデータ形式(json や xml など)の規約(インターフェース)のことです。 API を仲介することによって、異なるプログラム同士で互いにプログラム機能やデータのやり取りを可能にします。

Twitter API では、アカウント操作、ツイートの取得や投稿、リストの取得、検索、ブロック、メディアアップロード、など、多くの機能が用意されており、これらの機能をウェブアプリケーションやスマートフォンアプリケーションに実装することが出来ます。API を利用して、自前のスマホアプリやウェブサイトをより充実させることが出来ます。

Twitter REST APIs

Twitter API は、REST の規格に則り Twitter REST APIs として提供されています。REST(REpresentational State Transfer)はWebサービスの設計仕様のことです。REST は、HTTPメソッドで特定のURLに接続し、結果をXMLやJSONで返します。URLのパラメータの指定によって様々な結果を受信することが可能です。例えば、リクエストの例として「https://api.twitter.com/1.1/statuses/home_timeline.json」のような形があります。このURLはエンドポイントと呼ばれます。また、Twitter REST APIs は、OAuth認証 で接続することによって多様なリクエストに応じてくれます。

OAuth認証とは

Twitter OAuth認証 とは Twitter の認証方式です。Twitter は元々Basic認証でしたが、セキュリティー面の向上を図るために OAuth認証 へ変更されました。Twitter API V1.1 からは、すべての情報取得に OAuth認証 が必要になります。OAuthの仕様は記載されています。

Twitter REST APIs を活用するには!?

  • Twitterアカウント登録
  • Twitterアプリケーション登録
  • OAuth認証接続
  • APIの呼び出し

まず、Twitter のアカウント登録が必要です。次に Twitter のアプリケーション登録を行います。各種登録が完了したら、OAuth接続 を通して Twitter REST API を呼び出します。

Twitter OAuth認証で何が出来る?

Twitter application(My applications) へOAuth認証接続することで、Twitter API サービスを利用することが出来ます。Twitter API では、タイムラインの取得、リストの取得、つぶやきの検索、ツイートやリツイートなどの機能が用意されており、これらの機能をウェブアプリケーションやスマートフォンアプリケーションに実装することが出来ます。

詳しくは Docs を参照下さい。


Twitterアプリケーション登録

※wepicks.netはご自分のドメインに置き換えて読み進めて下さい。


Twitterアカウントの登録

Twitterアカウントを作成していない方は最初にTwitterアカウントを作成します。その際、「メールアドレス認証」と「電話番号認証」を漏らさず完了してください。Twitterアプリケーション登録で必要になります。既にアカウントを持っているユーザーも各認証が完了しているか確認しましょう。
https://twitter.com/




Twitter Developers(ツイッターデベロッパーセンター)

Twitter Developers(ツイッターデベロッパーセンター) にアクセスして apps.twitter.com ページへ移動します。

ツイッターデベロッパーセンターのウェブサイトへアクセスします。



上部メニューの「Docs」の「Documentation」をクリックします。



Docsページに遷移したら、左メニューの「Basics」をクリックします。



「Basics」のサブメニューが開くので「Authentication」をクリックします。



「Authentication」ページに遷移したら、「Guides」をクリックします。



「Guides」のサブメニューの「Access tokens」をクリックします。ページ内の「apps.twitter.com」をクリックすると、Twitterアプリケーションの登録ページへ遷移します。




Twitter開発者アカウントの申請(apply for a Twitter developer account)

2018年7月から、新しいアプリを作成する前に、Twitterデベロッパーアカウントの申請と承認が必要になりました。



以下のメッセージが表示されます。

As of July 2018, you must apply for a Twitter developer account and be approved before you may create new apps. Once approved, you will be able to create new apps from developer.twitter.com.

For the near future, you can continue to manage existing apps here on apps.twitter.com. However, we will soon retire this site and consolidate all developer tools, API access, and app management within the developer portal at developer.twitter.com. You will be able to access and manage existing apps through that portal when we retire this site.

意訳しますと、

2018年7月から、新しいアプリを作成する前に、Twitterデベロッパーアカウントの申請と承認が必要になりました。 承認されると、developer.twitter.com から新しいアプリを作成することができます。

暫くは、apps.twitter.com で既存のアプリを引き続き管理できますが、早い段階で、apps.twitter.com が廃止され、developer.twitter.com へアプリや開発者管理ツールが統合されます。 統合後、開発者ツールは既存アプリは、developer.twitter.com を通して管理することができます。


Create New App(新規アプリケーションの作成)

Twitterアカウントでログインしている状態だと、「Create New App」ボタンが表示されるのでクリックします。アカウント登録の際は、「メールアドレス認証」と「電話番号認証」を漏らさず完了してください。




Create an application(アプリケーションの作成)

画面が遷移して、「Create an application」 画面が表示されます。必要事項の入力を行います。まずは、必須項目の 「Name」 「Description」 「Website」 の3つを入力します。「Callback URL」は空のままで大丈夫です。各項目の入力が完了したら、「Yes, I have read and agree」にチェックし、画面一番下の「Create your Twitter application」ボタンを押してアプリケーションを作成してください。



項目 内容
Name Twitterアプリケーションの名前です。(ユニーク名)
アプリケーションの紹介や認証を許可する場合などに利用者に表示されます。
アプリケーションに適した名前を付けましょう。
アプリケーション名は既に他の人が使用している場合は登録する事ができません。また、「Twitter」の文字列は使用できません。
Description Twitterアプリケーションの説明です。
Twitterアプリケーションに適した説明を記入しましょう。
WebSite Twitterアプリケーションを設置するウェブサイトのURLです。ウェブアプリケーションとして使用する場合はこのURLがサービスサイトになります。
CallbackURL ウェブアプリケーションとして公開し、ユーザーに認証を求める場合、認証後に戻るURLになります。


アプリケーションの登録完了

アプリケーションの登録が完了すると、アプリケーションの管理画面に遷移し、次のメッセージが表示されます。「Your application has been created.Please take a moment to review and adjust your application’s settings.」





Pemissions(パーミッション)のセッティング

アプリケーションの登録が完了したら、Pemissions(パーミッション)の設定を行います。アプリケーション名が表示されている直ぐ下のタブメニューの 「Pemissions」 をクリックして下さい。次に、「Read, Write, and Access Direct messages」を選択して「update Seeings」ボタンをクリックします。この権限であれば、ツイートやダイレクトメッセージの取得や投稿・送信など、すべての機能を利用することが可能です。



設定が更新されれば、タブメニューの「Details」の「Access level」の内容が「Read, Write, and Access Direct messages」となります。




アクセストークンの取得

  • Consumer key / Consumer secret / Access token / Access token secret の取得

次に、「Consumer key(API Key)」「Consumer secret(API secret)」「Access token」「Access token secret」を取得します。タブメニューの「Keys and Access Tokens」をクリックしてページを移って下さい。



Application Settings に「Consumer key(API Key)」と「Consumer secret(API secret)」が表示されています。この2つをメモ帳などに保存しておきましょう。後で使用します。



ページ下へ移動し、「Create my access token」をクリックします。



アクセストークンが生成され、「Access Token」と「Access Token Secret」が表示されます。これらもメモ帳などに保存しておきましょう。後程紹介するサンプルコードで使用します。



これで、アプリケーションの登録と「Consumer key(API Key)」「Consumer secret(API secret)」「Access token」「Access token secret」の取得が完了しました。それでは API を呼び出すプログラムの作成に移りましょう。


OAuth接続するためのTwitterライブラリのダウンロード


(1) OAuth接続するためのTwitterライブラリのダウンロード

OAuth接続するためのTwitterライブラリを Twitter libraries で紹介されている、themattharris氏の tmhOAuth を使用します。使用するファイルは tmhOAuth.php の1つのみです。ファイルはGithub:https://github.com/themattharris/tmhOAuth からダウンロードできます。

最新ダウンロードファイル:tmhOAuth
サンプルで使用しているバージョンのファイル:tmhOAuth-master.zip 152 KB
Twitter OAuth認証とはTwitterの認証方式です。Twitterは元々Basic認証でしたが、セキュリティー面の向上を図るためにOAuth認証へ変更されました。Twitter API V1.1 からは、すべての情報取得にOAuth認証が必要になります。OAuthの仕様は記載されています。
Twitter application(My applications) へOAuth認証接続することで、Twitter API サービスを利用することが出来ます。Twitter API では、タイムラインの取得、リストの取得、つぶやきの検索、ツイートやリツイートなどの機能が用意されており、これらの機能をウェブアプリケーションやスマートフォンアプリケーションに実装することが出来ます。
詳しくは Docs を参照下さい。


(2) 動作環境

  • PHP Version 5.3以上であること(phpinfo();関数で確認)
  • cURL support enabledであること(phpinfo();関数で確認)
  • hash_hmac()関数が利用できること(PHP5.1.2で導入)


タイムラインを取得するプログラムの作成


(1) ファイルの設置

先程ダウンロードしたファイル tmhOAuth.php をサーバーにアップロードします。本サイトのサンプルでは http://wepicks.net/code-example/twitter-restapi/tmhOAuth/tmhOAuth.php にアップロードしています。また、hometimeline.php というファイルを作成して同じ階層にアップロードします。サンプルでは、ドキュメントルート直下に /code-example/twitter-restapi/tmhOAuth/ というディレクトリ構造を構成していますが、設置するディレクトリは任意です。
本サイトの例:

http://wepicks.net/code-example/twitter-restapi/tmhOAuth/tmhOAuth.php
http://wepicks.net/code-example/twitter-restapi/tmhOAuth/hometimeline.php


(2) hometimeline.phpの記述内容

「hometimeline.php」には以下のコードを記述して下さい。「*******」部分の「key」や「token」にはTwitterアプリケーション登録時に取得した Keys and Access Tokens を入力して下さい。

Twitterアカウントのホームタイムラインが取得できます。
– サンプル Click Here ! –


ツイート投稿のサンプルコード

動作環境は hometimeline.php と同じです。「tweetpost.php」というファイルを作成して、「tmhOAuth.php」ファイルと同じ階層にアップロードしてください。
本サイトの例:

http://wepicks.net/code-example/twitter-restapi/tmhOAuth/tmhOAuth.php
http://wepicks.net/code-example/twitter-restapi/tmhOAuth/tweetpost.php

– サンプル Click Here ! –

投稿できない場合のチェック事項。登録したTwitterアプリケーションの「Permissions」の「Access」を「Read, Write and Access direct messages」にする必要があります。この設定にしないとAPIによる書き込みが出来ません。


画像付きツイート投稿のサンプルコード

こちらも動作環境は hometimeline.php と同じです。「update_tmh.php」というファイルを作成して、「tmhOAuth.php」ファイルと同じ階層にアップロードしてください。
本サイトの例:

http://wepicks.net/code-example/twitter-restapi/tmhOAuth/tmhOAuth.php
http://wepicks.net/code-example/twitter-restapi/tmhOAuth/update_tmh.php

画像付きツイートを投稿する場合、画像を先に media/upload でTwitter側に送信して、media_idを取得します。その後、media_idとツイートを合わせて statuses/update で送信します。

– サンプル Click Here ! –


複数画像付きツイート投稿のサンプルコード

「update_multi_tmh.php」というファイルを作成して、「tmhOAuth.php」ファイルと同じ階層にアップロードしてください。
本サイトの例:

http://wepicks.net/code-example/twitter-restapi/tmhOAuth/tmhOAuth.php
http://wepicks.net/code-example/twitter-restapi/tmhOAuth/update_multi_tmh.php

複数の画像を同時に投稿する場合、複数の media_id を「 , (カンマ)」で区切って1つの media_id として送信します。上限は4つです。

– サンプル Click Here ! –

以上です。

タグ(=記事関連ワード)

タグ:

日付

投稿日:2017年10月2日
最終更新日:2018年08月04日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://wepicks.net/twitter-restapi-tmhoauth/trackback/

page top