やっと、直った・・・
ずっと何がわるくて、file_get_contentsが使えないのか全く分からなかった・・・orz
–with-curlwrapperを付けてconfigureをしたことが、間違いだったorz
以後、弾みで書くのは気を付けよう・・・
やっと、直った・・・
ずっと何がわるくて、file_get_contentsが使えないのか全く分からなかった・・・orz
–with-curlwrapperを付けてconfigureをしたことが、間違いだったorz
以後、弾みで書くのは気を付けよう・・・
お仕事関係でmixiページアプリを作ることになったよ;_;
とりあえず、個人でパートナー登録・・・
クレカがいるのかorz
とか思ったりしながら登録!
※あと、法人の場合は登記簿を郵送しないといけないとか・・・
だから敷居が高すぎてみんなやる気がなくなるんだよとか思ったりもしてる・・・
http://developer.mixi.co.jp/about-platform/com/partner/
とにかく色々触りながらやってみないとわからないコトだらけで、正直辛かった;_;
※やりたくない気持ちもあって余計・・・
とりあえず、mixiデベロッパーの仕様書?はかなり読み辛い。
まだ、Facebookのデベロッパーの方がまし。
以下に書いてある・・・
http://developer.mixi.co.jp/page-apps/spec/page-api/
methodは、POST
URLは、http://api.mixi-platform.com/2/pages/[Page-ID]/feeds
[Page-ID]はmixiページのID
Content-Type:application/json
本家でこんな風にしなよとかかれています。
{ "contentUri" : "http://www.application.com/id=12345", "title" : "タイトル", "body" : "本文", "urls" : { "pcUrl" : "http://mixi.jp/run_page_appli.pl?page_id=0&module_id=0&appParams=%7B%22uid%22%3A%221569%22%7D", "mobileUrl" : "", "smartphoneUrl" : "", }, "sourceId" : "3" }
実際に上記のような書き方はしません。
実際は以下のような感じ
<?php $page_id = '123456'; $url = 'http://api.mixi-platform.com/2/pages/' . $page_id . '/feeds'; $arr_data = array( 'title' => タイトル文字列, 'body' => 本文, ); $content = json_encode($arr_data); $opt = array( 'http' => array( 'method' => 'POST', 'header' => 'Authorization: OAuth '.$access_token."\r\n". 'Content-Type: application/json', 'ignore_errors'=>true, 'content' => $content, )); $data = file_get_contents($url, false, stream_context_create($opt)); //成功するとjson形式で返りがある print_r(json_decode($data, ture)); ?>
Content-Type:application/json
本家でこんな風にしなよとかかれています。
{ "contentUri" : "http://www.application.com/id=12345", "title" : "タイトル", "body" : "本文", "urls" : { "pcUrl" : "http://mixi.jp/run_page_appli.pl?page_id=0&module_id=0&appParams=%7B%22uid%22%3A%221569%22%7D", "mobileUrl" : "", "smartphoneUrl" : "", }, "sourceId" : "3", "imageUrls" : [ "http://www.imageurl.com/image/photo1.jpeg" ] }
実際に上記のような書き方はしません。
実際は以下のような感じ
<?php $page_id = '123456'; $url = 'http://api.mixi-platform.com/2/pages/' . $page_id . '/feeds'; $arr_data = array( 'title' => タイトル文字列, 'body' => 本文, 'imageUrls' => array( 'http://hogehoge.com/hage.jpg' ), ); $content = json_encode($arr_data); $opt = array( 'http' => array( 'method' => 'POST', 'header' => 'Authorization: OAuth '.$access_token."\r\n". 'Content-Type: application/json', 'ignore_errors'=>true, 'content' => $content, )); $data = file_get_contents($url, false, stream_context_create($opt)); //成功するとjson形式で返りがある print_r(json_decode($data, ture)); ?>
ここで気をつけなければならないところは、imageUrlsはjpgかpngでなければならないということです。しかも、拡張子がjpgかpngしかだめです(最後が.jpgまたは.pngのみ受け付ける)。プログラムから吐かれたばあいのIDなどがついている場合はm無効となります。
Content-Type:multipart/form-data
本家でこんな風にしなよとかかれています。
boundary文字列 Content-Disposition: form-data; name="request" { "contentUri" : "http://www.application.com/id=12345", "title" : "タイトル", "body" : "本文", "urls" : { "pcUrl" : "http://mixi.jp/run_page_appli.pl?page_id=0&module_id=0&appParams=%7B%22uid%22%3A%221569%22%7D", "mobileUrl" : "", "smartphoneUrl" : "", }, "sourceId" : "3", } boundary文字列 Content-Disposition: form-data; name="image1"; filename="添付画像1.jpg" Content-Type: image/jpeg .......添付画像のバイナリデータ
実際に上記のような書き方はしません。
実際は以下のような感じ
<?php $page_id = '123456'; $url = 'http://api.mixi-platform.com/2/pages/' . $page_id . '/feeds'; $title = 'タイトル'; $body = '本文の内容'; $image_file = "/tmp/hoge.jpg"; $boundary = "".md5(microtime()); $content = "--".$boundary."\r\n"; $content.= 'Content-Disposition: form-data; name="request"'."\r\n"; $content.= "\r\n"; $content.= json_encode( array( "title" => $title, "body" => $body, )); $content.= "\r\n"; $content.= "--".$boundary."\r\n"; $content.= 'Content-Disposition: form-data; name="image1"; filename="' . basename($image_file) . '"'."\r\n"; $content.= 'Content-Type: image/jpeg'."\r\n"; $content.= "\r\n"; $content.= file_get_contents($image_file)."\r\n"; $content.= "--".$boundary."--"; $opt = array( 'http' => array( 'method' => 'POST', 'header' => 'Authorization: OAuth '.$access_token."\r\n". 'Content-Type: multipart/form-data; boundary='.$boundary; 'ignore_errors'=>true, 'content' => $content, )); $htp['header'] .= "\r\n".'Content-Type: application/json'; $data = file_get_contents($url, false, stream_context_create($opt)); ?>
と、こんな感じで書いて行きます。
実際はもう少しurlencodeしたりとかするんですけどね・・・
あとは、バグっぽいのが、あったけど直ったみたい??
bodyに改行コードがあると投稿できないとか・・・
※余談だけど、コメントの投稿でも改行コードを受け付けてくれない・・・
何故か\rははじかれないんだよね・・・でも、mixiページには、改行は反映されていないんだよね・・・ふしぎだなぁ~
HDDがお亡くなりになってから、さっそくgoogle analyticsを埋め込むプラグインを作り直しました。
一応ktai-styleにも対応しています。
今作っているのが、ktai-styleに自動で埋め込めるadsense・・・
なんか険しい道のりになりそうでもうあきらめ気味orz
なんとなく忙しくて、手をつけていなかったblogの設定を直し始めますた。
たとえば、google Analyticsのプラグイン作ったりorz
google Adsense?を埋め込むとかはまだだけどorz
HDDの価格が高騰している中、HDDが壊れたorz
仕方が無いのでHDDを購入して、
CentOS6、Apache2.2.21、PHP5.3.8、MySQL5.5.17、Postgresql9.1.1
を入れました、、、
OSの入れ方が変わったおかげで十数回インストールしなしてみたり、、
Mysql5.5系からcmakeで入れるようになったために、またしても入れ方が分からず何回か間違った入れ方をしていたし、、でどこかのblogでcmakeのオプションの書き方が書いてあったのでそれを参考に調べなおして入れることができたよ;_;
あとは、ちまちま、postfixとか設定しなおしたりと、、
postfixとかは正規表現でメールアドレスをの割り振れるように設定とか
Postgresql9.1系から簡単にクラスターが出来るとか・・・