ユーザIDとアクセストークンの取得
続いて、左ペインの[Graph APIエクスプローラを使用する]をクリックします。 Graph APIエクスプローラは、リクエストURL、パラメータなどを指定して[送信]ボタンをクリックすることにより、どんなレスポンスが返ってくるかを確認できる、対話的なツールです。
[GET▼]ボタンの右側の欄の[https://graph.facebook.com/]
の部分が起点のURLになります。また、その右側にある15桁の数字が自分のユーザIDになりますので、控えておいてください。
右側にある[アクセストークンを取得]ボタンをクリックし、表示されるダイアログで[Extended Permissions]タブをクリックし、[status_update]
と[read_stream]
にチェックし、[Get Access Token]ボタンをクリックします。
表2.Permissionの例
Permission | 許可する操作内容 |
---|---|
status_update | Facebookへの投稿 |
read_stream | ニュースフィードへのアクセス |
photo_upload | 写真のアップロード |
read_friendlist | 友達リストへのアクセス |
アプリの許可画面では[許可する]ボタンをクリックしてください。
[アクセストークン]の右の長い文字列がアクセストークンですので、控えておいてください。
Facebookのリクエストとレスポンス
目的ごとのリクエストとパラメータは、以下の通りです。
表3.今回利用するリクエスト
目的 | リクエストURL | HTTPメソッド |
---|---|---|
友達のフィードの表示 | https://graph.facebook.com/(ユーザID)/home | GET |
自分のフィードの表示 | https://graph.facebook.com/(ユーザID)/feed | GET |
ウォールへの投稿 | https://graph.facebook.com/(ユーザID)/feed?message="(投稿文)" | POST |
いいね! | https://graph.facebook.com/(投稿ID)/likes | POST |
コメント | https://graph.facebook.com/(投稿ID)/comments | POST |
投稿IDは、「ニュースフィード画面の表示」でのレスポンスから取得します。パラメータとして、access_token=(アクセストークン)は全てのリクエストで必須です。
ニュースフィード画面の表示リクエストに対するレスポンスは、以下のようなJSON形式になっています。
表4.レスポンス項目で今回使うもの
要素のパス | 説明 |
---|---|
data | 投稿の件数だけ存在する(配列) |
data(i).id | i番目の投稿のID |
data(i).from.name | i番目の投稿者の名前 |
data(i).message | i番目の投稿の文章 |
data(i).created_time | i番目の投稿の作成日時 |
data(i).likes.data | i番目の「いいね!」の件数だけ存在する(配列) |
data(i).likes.data(j).name | i番目の「いいね!」と言っているj番目の人の名前 |
data(i).comments.data | i番目のコメントの件数だけ存在する(配列) |
data(i).comments.data(k).from.name | i番目のコメントのk番目の記入者の名前 |
data(i).comments.data(k).message | i番目のコメントのk番目の文章 |
data(i).comments.data(k).created_time | i番目のコメントのk番目の作成日時 |
Excelによる開発
以下の手順で行います。
- 各種の値を格納する名前を定義する
- 操作画面用のオブジェクトを設定する
- HTTP送信を行うVBAを記述する
- ニュースフィード画面を表示するVBAを記述する
- 投稿、いいね!、コメントを送るVBAを記述する
各種の値を格納する名前を定義する
ニュースフィード画面表示のために、以下の名前を定義しておきます。
表5.ニュースフィード画面表示のための名前定義
名前 | 範囲 | 目的 |
---|---|---|
ttlName | A2 | 投稿者などの名前のタイトル |
ttlDate | B2 | 投稿などの日時のタイトル |
ttlType | C2 | 投稿などのタイプ |
ttlId | D2 | 投稿ID |
ttlBody | E2 | 投稿などの本文のタイトル |
なお、D列は非表示にしておきます。