PHPからgyazo APIを叩いてアップロード
この記事はMojirageアドベントカレンダーの17日目の記事です。
matatsuna.hatenablog.com
gyazo
gyazoはスクリーンショットを共有するためのサービスです
gyazo.com
APIでプログラムからアップロードすることもできます
https://gyazo.com/api/docs/image
PHPからアップロード
とりあえず試して動いた方法を紹介します
HTTP_Requestを取得
http://pear.php.net/package/HTTP_Request/download/1.4.4/
インストール出来なければ、直接zipをダウンロードしてプログラム以下において呼び出してもいけます
<?php require('HTTP_Request-1.4.4/Request.php'); // $imgはgyazoにアップロードしたい画像ファイル file_put_contents('gyazo.png', $img); $post_data = array( 'access_token' => $token, 'title' => $title, 'desc' => $desc ); // アップロードパラメータ $upload_file = array( 'name' => 'imagedata', 'path' => __DIR__.'/gyazo.png' ); // アップロード $POST_URL = 'https://upload.gyazo.com/api/upload'; $rs = http_send($POST_URL, $post_data, $upload_file); function http_send($url, $params, $upload_file = null) { $req = new HTTP_Request(); $req->setMethod(HTTP_REQUEST_METHOD_POST); foreach ($params as $key => $val) { $req->addPostData($key, $val); } $req->setURL($url); if ($upload_file) { $res = $req->addFile($upload_file["name"], $upload_file["path"]); if (PEAR::isError($res)) { echo $res->getMessage(); exit; } } if (!PEAR::isError($req->sendRequest())) { return $req->getResponseBody(); } else { return false; } }
この方法では書き込み権限が必要なのでchmod叩く必要があるかもです
base64でアップロードできたら楽なんですけどね...