PHPでWEBサイトがインスタグラム(Instagram)と連携する方法
Contents
■前説
最近、インスタグラム(Instagram)が流行っているため、ECサイトなどにおいて、インスタグラム(Instagram)と連携して、インスタグラム(Instagram)の画像をサイト内に表示するのはよく見られます。
今日はPHPでWEBサイトがインスタグラム(Instagram)と連携する方法を紹介したいと思います。
■インスタグラム(Instagram)との連携の流れ
インスタグラム(Instagram)と連携するために、インスタグラム(Instagram)側から提供するAPIを利用するだけで済むのが、access_tokenというものが必要となります。
このaccess_tokenを取得するために、client_idが必要となり、client_idを取得するのに、開発者のサインアップが必要となります。
なので、正常な流れは、
1.開発者をサインアップする
2.client_idをゲットする
3.client_idでaccess_tokenをゲットする
4.access_tokenでPHP側にてインスタグラム(Instagram)と連携する
■前提条件
・インスタグラム(Instagram)のアカウントがある
・WEBサイトがある(当然の話と思いますが。。。)
■手順
1.開発者をサインアップする
インスタグラム(Instagram)のアカウントでログイン状態で下記のURL(Developer Signup画面)を開いて、必要な項目を記入する。
https://www.instagram.com/developer/register/
下記の内容を記入して、「Sign Up」ボタンを押下する。
項目名 | 項目説明 | 例 |
---|---|---|
ウェブサイト | インスタグラム(Instagram)と連携するWEBサイトのURL(後ろに「/」なし) | https://xiyuan.jp |
Phone number | 任意の内容(筆者の場合、WEBサイトを運営するお客様の電話番号を記入した) | 080-1234-5678 |
What do you want to build with the API? | 任意の内容 | for business |
I accept the API | チェックオンにする | - |
2.client_idをゲットする
次に出て来た画面にて、「Register」リンクをクリックして、「Manage Clients」画面(https://www.instagram.com/developer/clients/manage/)を開く。
※「Register Your Application」ボタンを押下しても同じ画面に遷移します。
続いて、「Register a New Client」をクリックし、次に出て来た画面にて必要な項目を記入する。
下記の内容を記入してから、「Register」ボタンを押下します。
項目名 | 項目説明 | 例 |
---|---|---|
Application Name | 任意の内容、だだし、英語記載の通りですが、名称に「Instagram」、「IG」、「insta」、「gram」単語を入れないように注意ください | xiyuan |
Description | 任意の内容 | Instagramの連携 |
Company Name | 任意の内容 | 運営株式会社 |
Website URL | 運営するウェブサイトのURL | https://xiyuan.jp |
Valid redirect URIs | access_tokenをゲットするためのウェブサイトのURL、入力した後に、必ずエンターキーを叩いて、改行する | https://xiyuan.jp
|
Privacy Policy URL | 任意のウェブサイトのURL | https://xiyuan.jp |
Contact email | 連絡メールアドレス | sample@dummy.co.jp |
成功の場合、次の画面にて、「Client ID」が表示されて、それをゲットする。
3.client_idでaccess_tokenをゲットする
access_tokenをゲットする前に、暗黙OAuth認証を外します。
上記の画面にて、「Manage」ボタンを押下します。
Manage Client画面に遷移し、そこで、「Security」タブの「Disable implicit OAuth」をチェックオフします。
最後、「Update Client」ボタンを押下します。
暗黙OAuth認証を外したら、下記URLを叩きます。
1 2 3 4 5 |
https://api.instagram.com/oauth/authorize/?client_id=No.2のClient ID&redirect_uri=No.2のWebsite URL&response_type=token&scope=basic |
例:
1 2 3 4 5 |
https://api.instagram.com/oauth/authorize/?client_id=8392101c21ec4d7098ec6efcc61a12ad&redirect_uri=https://xiyuan.jp&response_type=token&scope=basic |
実際のURLを叩いたら、インスタグラム(Instagram)側に、下記のように、承認画面が表示され、承認ボタンを押下します。
承認ボタンを押下したら、No.2のWebsiteが表示され、URLの後ろに、「#access_token=7526157922.a1d4c4a.d2efed7bd8b04809ab387268b4122745」のようなaccess_token値が付いています。それをゲットし、PHP側に実装時に使います。
4.access_tokenでPHP側にてインスタグラム(Instagram)と連携する
No.3で取得したaccess_tokenを持って、PHP側にて、インスタグラム(Instagram)と連携します。
ここで、curlを使います。urlのcountパラメータは、インスタグラム(Instagram)から取得する最新件数です。例としは、最新5件の投稿情報をインスタグラム(Instagram)から取得します。
データはjson形式なので、json_decode関数も必要です。データの中身は変わらないので(Instagramの開発ドキュメントを読むことは面倒だし、英語でそもそも読めないし)、var_dump関数で、データの格納方法と変数名を一回確認した上で、必要な情報を取得しますしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// インスタグラム(Instagram)と連携し、最新5件の投稿情報を取得する $ch = curl_init('https://api.instagram.com/v1/users/self/media/recent/?access_token=6526957922.a1d4c3f.dcefed7bd8b04809ab387268b4122745'."&count=5"); curl_setopt_array($ch, $option); $json = curl_exec($ch); $array = json_decode($json, true); //画像とURLを取得する for($i = 0;$i < count($array["data"]); $i++) { $snapwidget[] = array( "img_url" => $array["data"][$i]["images"]["standard_resolution"]["url"], "link" => $array["data"][$i]["link"], ); } //セッションなどの変数に格納する $_SESSION['snapwidget'] = $snapwidget; |
まとめ
PHPでWEBサイトがインスタグラム(Instagram)と連携する方法をここまで紹介しました。これ以上より良い方法が絶対にありますと信じて、皆さんが分かれば、是非筆者に連絡してお願い致します。
それでは、以上、また!
ディスカッション
コメント一覧
まだ、コメントがありません