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 件のコメント:
コメントを投稿