Showing posts with label flickr. Show all posts
Showing posts with label flickr. Show all posts

1/27/2012

php で OAuth を使ってみる

php で OAuth を使って色々と遊んでみようと思う。

  1. Twitter に文字を post する
  2. tumblr. に文字を post する
  3. Facebook に文字を post する
  4. TwitPic に画像を post する
  5. tumblr. に画像を post する
  6. Facebook に画像を post する
  7. Flickr に画像を post する
  8. Facebook のチェックインスポット取得する
  9. Facebook でチェックインする
  10. 4square のチェックインスポットを取得する
  11. Twitter でお気に入りを取得する
  12. Twitter でフォロワの一覧を取得する
  13. Twitter でフォローの一覧を取得する

1/26/2012

[php で OAuth を使ってみる:第七回] Flickr に画像を post する

Flickr に OAuth を使って画像を post してみる。
※この情報は 2012 年 1 月現在のものです。仕様が変更される可能性は充分にあるので、ご了承ください。

1. Flickr アプリを登録する
The App Garden にアクセスし、アプリの登録を行う。商用でなければ「APPLY FOR A NON-COMMERCIAL KEY」をまずクリックする。
What's the name of your app?: アプリ名
What are you building?: アプリの説明
下 2 つのチェック: チェックする

※登録後、アプリ名は変えられない模様。

2. Flickr の使うキーを確認する
登録後に表示されたページで、「Key」と「Secret」を確認する。これが今後必要となるキー。

3. 書き込みできる権限に変更する
登録後に表示されたページの「Edit app details」をクリックし、続いて右側にある「Edit」をクリックして、入力し、保存する。
App Type: 用途により選ぶ
Callback URL: ユーザによる認証動作後にリダイレクトする URL(「4.」でアップする php)
App Logo: アイコン(GIF のみw)

3. 必要となるライブラリをインストールする
下記からダウンロードし、アプリとするディレクトリにアップする。
phpflickr: phpflickr, /アプリのディレクトリ/Flickr

4. 認証受け渡し用の php を用意する
下記に必要な事項を埋め、アプリのディレクトリにアップする。
<?php
$api_key = 'xxxxxxxxxxxxxxxx'; // 「2.」で確認した「Key」
$api_secret = 'xxxxxxxxxxxxxxxx'; // 「2.」で確認した「Secret」
$permissions = 'write'; // 書き込むので write。読み込むだけなら read、削除もするなら delete
$path_to_phpFlickr_class = './Flickr/';

ob_start();
require_once($path_to_phpFlickr_class . 'phpFlickr.php');
unset($_SESSION['phpFlickr_auth_token']);

if (isset($_SESSION['phpFlickr_auth_redirect']) && !empty($_SESSION['phpFlickr_auth_redirect'])) {
  $redirect = $_SESSION['phpFlickr_auth_redirect'];
  unset($_SESSION['phpFlickr_auth_redirect']);
}

$f = new phpFlickr($api_key, $api_secret);

if (empty($_GET['frob'])) {
  $f->auth($permissions, false);
} else {
  $f->auth_getToken($_GET['frob']);
}

if (empty($redirect)) {
// ユーザの認証後、リダイレクトで帰ってきた後
  $f->auth("read");

  echo "<script type='text/javascript'>location.href = 'アプリ本体の URL';</script>";
} else {
// ユーザの認証前、Flickr にリダイレクトする
  header('Location: '. $redirect);
}
?>

5. post する
下記の php をアプリのディレクトリにアップする(予め tmp ディレクトリを 707 で作っておく)
※html の form 要素内での input type='file' は name='img' としている。
<?php
$title = 'テストタイトル';
$status = 'テスト';
$tag = 'テスト画像';

$key = 'xxxxxxxxxxxxxxxx'; // 「2.」で確認した「Key」
$secret = 'xxxxxxxxxxxxxxxx'; // 「2.」で確認した「Secret」

// 一度自分のサーバにアップ
$uploaddir = './tmp/';
$photo = $uploaddir. basename($_FILES['img']['name']);
move_uploaded_file($_FILES['img']['tmp_name'], $photo);

require_once './Flickr/phpFlickr.php';

$f = new phpFlickr($key, $secret);
$f->auth('write');
$f->sync_upload($photo, $title, $status, $tag);
// 自分のサーバにアップした画像を削除
unlink($photo);

echo "<script type='text/javascript'>alert('画像「". $_FILES['img']['tmp_name']. "」をpostしました!');</script>\n";
?>

1/21/2012

京都で遊ぼう!の SNS 連携を強化しました

京都で遊ぼう! の SNS 連携を強化しました。


現在連携できる対象サービスは以下の通りです。
文字 post
  • Twitter
  • Facebook
  • tumblr.

画像 post
  • TwitPic
  • Facebook
  • tumblr.
  • Flickr

※iPhone などの iOS では input type='hidden' が無効化されるのでスマートフォンでの画像アップロードは Android でのみ有効です。

京都で遊ぼう!説明ページ
京都で遊ぼう!