BASIC認証
非公式ということもあり、VineのAPIにはアクセストークンを用いた認証システムは存在せず、認証にはBASIC認証という形式を利用します。これは、普段、ユーザーとして利用しているID(Eメール)とパスワードをそのまま使うということですね。認証が必要なリクエストでは、BASIC認証で取得した認証キーを使っていくことになります。
エンドポイント
下記のURLアドレスにPOSTメソッドでリクエストを送って下さい。
POST https://api.vineapp.com/users/authenticate
パラメータ
リクエストに必要なパラメータの一覧です。
- username
- Vineで利用しているアカウントの、Eメールです。Twitterアカウントで始めていて、Eメールをまだ登録していない人は、登録する必要があります。
- password
- Vineで利用しているアカウントの、パスワードです。
取得できるJSON
リクエストに成功すると、認証キーと、簡単なプロフィール情報を取得することができます。Vine全般に言えることですが、userId
に含まれる数値のユーザーIDは、桁が多過ぎるくせに、int型です。そのため、工夫しないと、PHPやJavaScriptで取り扱う時に丸められてしまいます。
JSON
{"code": "", "data": {"username": "Yuta Arai", "edition": "JP", "userId": 909935838471794688, "key": "90993383841794688-2c913538-42ba-1d37-a296-eefb82f298bf", "avatarUrl": "http://v.cdn.vine.co/r/avatars/6D78FFD75D1086343523722473472_2e5f7349ae7.0.3.jpg?versionId=x2jga33b3560lWsCtv4DEqKaJh6jFzmn"}, "success": true, "error": ""}
サンプルプログラム
下記はサンプルコードです。ユーザーID(Eメール)とパスワードを指定して起動することで、取得した認証キーを、ブラウザに出力します。
PHP
<?php
// 設定項目
$params = array(
'username' => '' , // ユーザーID (Eメール)
'password' => '' , // パスワード
) ;
// BASIC認証のリクエスト
$curl = curl_init() ;
curl_setopt( $curl , CURLOPT_URL , 'https://api.vineapp.com/users/authenticate' ) ;
curl_setopt( $curl , CURLOPT_CUSTOMREQUEST , 'POST' ) ;
curl_setopt( $curl , CURLOPT_HEADER, 1 ) ;
curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false ) ;
curl_setopt( $curl , CURLOPT_RETURNTRANSFER , true ) ;
curl_setopt( $curl , CURLOPT_POSTFIELDS , http_build_query( $params ) ) ;
curl_setopt( $curl , CURLOPT_TIMEOUT , 5 ) ;
$res1 = curl_exec( $curl ) ;
$res2 = curl_getinfo( $curl ) ;
curl_close( $curl ) ;
// 取得したデータ
$json = substr( $res1, $res2['header_size'] ) ; // 取得したデータ(JSONなど)
$header = substr( $res1, 0, $res2['header_size'] ) ; // レスポンスヘッダー (検証に利用したい場合にどうぞ)
// 取得したJSONをオブジェクト型に変換
$obj = json_decode( $json ) ;
// HTML用
$html = '' ;
// 実行結果を出力
$html .= '<h2>実行結果</h2>' ;
// エラー判定
if( !isset( $obj->data->key ) )
{
$html .= '<p><mark>BASIC認証に失敗しました…。Eメール、またはパスワードが間違っている可能性があります。</mark></p>' ;
}
else
{
// 各データ
$auth_key = $obj->data->key ; // 認証キー
$username = $obj->data->username ; // ユーザーネーム
$userId = (string)$obj->data->userId ; // ユーザーID
$avatarUrl = (string)$obj->data->avatarUrl ; // アバター画像
// 出力
$html .= '<dl>' ;
$html .= '<dt>認証キー</dt>' ;
$html .= '<dd><mark>' . $auth_key . '</mark></dd>' ;
$html .= '<dt>ユーザーネーム</dt>' ;
$html .= '<dd>' . $username . '</dd>' ;
$html .= '<dt>ユーザーID</dt>' ;
$html .= '<dd><a href="https://vine.co/u/' . $userId . '" target="_blank">' . $userId . '</a></dd>' ;
$html .= '<dt>アバター画像</dt>' ;
$html .= '<dd><img class="_img" src="' . $avatarUrl . '" width="75" height="auto"></dd>' ;
$html .= '</dl>' ;
}
// 取得したデータ
$html .= '<h2>取得したデータ</h2>' ;
$html .= '<p>下記のデータを取得できました。</p>' ;
$html .= '<h3>JSON</h3>' ;
$html .= '<p><textarea rows="8">' . $json . '</textarea></p>' ;
$html .= '<h3>レスポンスヘッダー</h3>' ;
$html .= '<p><textarea rows="8">' . $header . '</textarea></p>' ;
?>
<?php
// ブラウザに[$html]を出力 (HTMLのヘッダーとフッターを付けましょう)
echo $html ;
?>
認証リクエストをする方法
認証キーを用いてリクエストをするには、カスタムヘッダーのvine-session-id
に、認証キーをセットして、リクエストをする必要があります。
vine-session-id: {認証キー}
例えば、PHPの場合は下記の通りです。
PHP
<?php
// 認証キー
$auth_key = '' ;
// リクエストURL
$request_url = '...' ;
$curl = curl_init() ;
curl_setopt( $curl , CURLOPT_URL , $request_url ) ;
curl_setopt( $curl , CURLOPT_HEADER, 1 ) ;
curl_setopt( $curl , CURLOPT_HTTPHEADER , array( 'vine-session-id: ' . $auth_key . "\r\n" ) ) ;
curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false ) ;
curl_setopt( $curl , CURLOPT_RETURNTRANSFER , true ) ;
curl_setopt( $curl , CURLOPT_TIMEOUT , 5 ) ;
$res1 = curl_exec( $curl ) ;
$res2 = curl_getinfo( $curl ) ;
curl_close( $curl ) ;
// 取得したデータ
$json = substr( $res1, $res2['header_size'] ) ; // 取得したデータ(JSONなど)
$header = substr( $res1, 0, $res2['header_size'] ) ; // レスポンスヘッダー (検証に利用したい場合にどうぞ)