[メモ]PHPでアップロード進捗状況がわかるらしい[未検証]

とりあえず、↓こんなのを見つけたので後で実験してみる。
セッションのアップロード状況

コレができるなら、もう少し面白そうなuploaderが作れるのでは?とか思ったりします。

追記:
php5.4.0以降から使えるのか・・・・
ちょっとめんどうなので、またの機会だな・・orz

スポンサーリンク

[PHP]–with-curlwrapper[counfigure]

やっと、直った・・・

ずっと何がわるくて、file_get_contentsが使えないのか全く分からなかった・・・orz

–with-curlwrapperを付けてconfigureをしたことが、間違いだったorz

以後、弾みで書くのは気を付けよう・・・

スポンサーリンク

[mixi]ミクシーページアプリ・・・[page]

お仕事関係でmixiページアプリを作ることになったよ;_;

とりあえず、個人でパートナー登録・・・
クレカがいるのかorz
とか思ったりしながら登録!

※あと、法人の場合は登記簿を郵送しないといけないとか・・・
だから敷居が高すぎてみんなやる気がなくなるんだよとか思ったりもしてる・・・
http://developer.mixi.co.jp/about-platform/com/partner/

とにかく色々触りながらやってみないとわからないコトだらけで、正直辛かった;_;
※やりたくない気持ちもあって余計・・・

とりあえず、mixiデベロッパーの仕様書?はかなり読み辛い。
まだ、Facebookのデベロッパーの方がまし。

◆mixiページアプリからの投稿は3パターン

以下に書いてある・・・
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

1.タイトルと本文のみの投稿

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));
?>

2.1に加え、イメージのURL指定によるイメージの投稿

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無効となります。

3.1に加え、サーバー内のローカルイメージの投稿

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ページには、改行は反映されていないんだよね・・・ふしぎだなぁ~

スポンサーリンク

[wordpress]google analytics埋め込みプラグイン[plugin]

HDDがお亡くなりになってから、さっそくgoogle analyticsを埋め込むプラグインを作り直しました。

こちら

一応ktai-styleにも対応しています。

今作っているのが、ktai-styleに自動で埋め込めるadsense・・・
なんか険しい道のりになりそうでもうあきらめ気味orz

スポンサーリンク