php-sdkを用いてFacebookアプリのテストユーザを作成します。
環境はZend Frameworkを想定しています。
テストユーザの作成
以下パラメータを指定できます。- installed:テストユーザ作成時にテストユーザにアプリをインストールするか否かを指定。デフォルトはtrue
- permissions:installedがtrueの場合、アプリに承認される権限を指定。
// テストユーザ作成
public function createTestUserAction() {
$installed = $this->getRequest()->getParam('installed');
$permissions = $this->getRequest()->getParam('permissions');
$paramAry = array(
'access_token' => $this->getAppAccessToken(),
'installed' => empty($installed) ? 'true' : $installed,
'permissions' => empty($permissions) ? 'read_stream,publish_stream' : $permissions
);
print_r($this->fb->api("/{$this->_fbAppId}/accounts/test-users", "POST", $paramAry));
}
例えば以下URLでread_stream、publish_stream、emailの権限が承認されたテストユーザを作成します。/<コントローラ名>/create-test-user?permissions=read_stream,publish_stream,email
login_urlが出力されるので、このURLを用いてテストユーザにアクセスできます。
login_urlは1時間で無効になります。
テストユーザの表示
// テストユーザ一覧表示
public function viewTestUsersAction() {
$tokenUrl = "/{$this->_fbAppId}/accounts/test-users?{$this->getAppAccessToken()}";
print_r($this->fb->api($tokenUrl));
}
アプリに対し作成済みのテストユーザ一覧を表示します。/<コントローラ名>/view-test-users
出力されるlogin_urlは10分で無効になります。
テストユーザの削除
// テストユーザ削除
public function deleteTestUserAction() {
$userId = $this->getRequest()->getParam('user-id');
$paramAry = array('access_token' => $this->getAppAccessToken());
$this->fb->api("/{$userId}", "DELETE", $paramAry);
}
※アプリのaccess_token取得用関数
private function getAppAccessToken() {
$tokenUrl = "https://graph.facebook.com/oauth/access_token?" .
"client_id={$this->_fbAppId}&client_secret={$this->_fbSecret}" .
// $this->_fbAppID:アプリID
// $this->_fbSecret:アプリの秘訣
"&grant_type=client_credentials";
$matches = array();
preg_match('/access_token=(.+)/', file_get_contents($tokenUrl), $matches);
$accessToken = $matches[1];
return $accessToken;
}
以下メモです。
- テストユーザのlogin_urlは1時間で無効となるが、再取得は可能
- テストユーザのaccess_tokenが取得可能のため、APIを用いてテストユーザに代わりアクションを取れる
- 1アプリにつき500テストユーザまで作成可能
- 現在はAPIを介したアクセスのみ可能だが、Developerアプリを介したアクセスもサポートされる予定
0 件のコメント:
コメントを投稿