[暴言] Cookie を使用して認証している場合、それらは ReSTful ではありません。[/暴言]
この API を扱うには、次のことを学ぶ必要があります (粗雑な実装のおかげです)。
- カールを使用
- CURL Cookie jar を使用する
2点は簡単です。お尻のほんの少しの痛み。作業を楽にするために、呼び出しを実行する API ラッパーを PHP で定義します。
<?php
class APIWrap {
private $jarFile = false;
function __construct($jarFile=null) {
if ($jarFile) {
if (file_exists($jarFile)) $this->jarFile = $jarFile;
else {
touch($this->jarFile);
$this->jarFile = $jarFile;
}
}
else {
$this->jarFile = "/tmp/jar-".md5(time()*rand(1,10000000)).".cookie";
}
}
/* The public methods */
public function call_url($url) {
return $this->_call_url($url);
}
public function logIn($email,$password) {
return $this->_call_curl("https://www.domain.com/members/login/auth",array("email" => $email, "pswd" => $password));
}
/* Our curl channel generator */
protected function _call_curl($url,$post=array()) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
if (count($post)) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($ch, CURLOPT_COOKIEJAR, $this->jarFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
return curl_exec($ch);
}
}
好きなようにcurlopt呼び出しを設定してください - それらは参考のためにそこにあります。重要なのはCURLOPT_COOKIEJARです。