新しい etherpad を自動的にセットアップする単純な PHP スクリプトを作成しようとしています ( http://etherpad.com/を参照)。
新しいパッドを作成するための API (まだ) がないので、別の方法でできるかどうかを調べています。
いくつか試してみたところ、etherpad.com のランダムな文字列をまだ作成されていないパッドに追加すると、そのアドレスに新しい etherpad を作成するかどうかを尋ねるフォームが表示されることがわかりました。そのフォームを送信すると、その URL に新しいパッドが作成されます。
そこで考えたのは、CURL を使用して PHP スクリプトを作成することで、そのフォームを複製し、etherpad をだまして任意の URL で新しいパッドを作成させることができるということでした。スクリプトを書きましたが、今のところうまくいきません。誰かが私が間違っていることを教えてもらえますか?
まず、etherpad 作成ページの HTML フォームは次のとおりです。
`
<p><tt id="padurl">http://etherpad.com/lsdjfsljfa-fdj-lsdf</tt></p>
<br/>
<p>There is no EtherPad document here. Would you like to create one?</p>
<input type="hidden" value="lsdjfsljfa-fdj-lsdf" name="padId"/>
<input type="submit" value="Create Pad" id="createPad"/>
`
次に、CURLを使用してフォームを送信しようとするコードを次に示します
$ch = curl_init();
//set POST variables
$url = "http://etherpad.com/ep/pad/create?padId=ldjfal-djfa-ldkfjal";
$fields = array(
'padId'=>urlencode("ldjfal-djfa-ldkfjal"),
);
$useragent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)";
// set user agent
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value; }
print_r($fields_string);
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
print_r($result);
//close connection
curl_close($ch);
スクリプトを実行すると、PHP はすべてが正しく実行されたと報告しますが、etherpad はパッドを作成しません。何が起こっているのか手がかりはありますか?