アーカイブ

2010 年 10 月 のアーカイブ

twitpicへの画像投稿

2010 年 10 月 30 日 コメントはありません

twitter利用時に画像ストレージとして利用されることが多いTwitPic。
以前は、twitterのID、パスワードを投げる仕様でしたが、OAuth対応後は、token、keyを投げる仕様となっていました。
token、keyをまんま投げたら認証キーを削除できる程度で、ID、パスワード投げるのと変わらないんですけどね。

TwitPic Developers – API Documentation – API v2 » upload

v2ではtwitterとOAuth認証で利用するヘッダを「X-Verify-Credentials-Authorization」として、リクエストURIを「X-Auth-Service-Provider」としてヘッダに含めることでAPIを利用できるようになりました。

以下、PEAR::HTTP_Request2とPEAR::HTTP_OAuthを利用したサンプル。

<?php
require_once 'HTTP/OAuth/Consumer.php';

define('OAUTH_CONSUMER_KEY',    'xxxx');
define('OAUTH_CONSUMER_SECRET', 'xxxx');
define('OAUTH_TOKEN',           'xxxx');
define('OAUTH_TOKEN_SECRET',    'xxxx');
define('TWITPIC_KEY',           'xxxx');

try {

  $consumer_request = new HTTP_OAuth_Consumer_Request();
  $consumer_request->accept(new HTTP_Request2());

  $consumer = new HTTP_OAuth_Consumer(OAUTH_CONSUMER_KEY,
                                      OAUTH_CONSUMER_SECRET,
                                      OAUTH_TOKEN,
                                      OAUTH_TOKEN_SECRET);
  $consumer->accept($consumer_request);
  $resp = $consumer->sendRequest('https://api.twitter.com/1/account/verify_credentials.json', array(), HTTP_Request2::METHOD_GET);

  $headers = $consumer->getLastRequest()->getHeaders();

  $http_request = new HTTP_Request2();
  $http_request->setHeader('X-Auth-Service-Provider', 'https://api.twitter.com/1/account/verify_credentials.json');
  $http_request->setHeader('X-Verify-Credentials-Authorization', $headers['authorization']);
  $http_request->setUrl('http://api.twitpic.com/2/upload.json');
  $http_request->setMethod(HTTP_Request2::METHOD_POST);
  $http_request->addPostParameter('key', TWITPIC_KEY);
  $http_request->addPostParameter('message', 'test');
  $http_request->addUpload('media', '/path/to/image');
  $resp = $http_request->send();
  $body = $resp->getBody();
  $body = json_decode($body);

  var_dump($body);

} catch (Exception $e) {

  var_dump($e->getMessage());

}

twitterとのOAuth認証に必要なAuthorizationヘッダを生成するだけでよいので、実際はtwitter側にリクエストする必要はないのですが、ソース読んだところいろいろ面倒なのでとりあえずこんな形で。

カテゴリー: php タグ: ,

Mac OS XにPEARのインストール

2010 年 10 月 29 日 コメントはありません
curl http://pear.php.net/go-pear | sudo php

設定はこんな風にした。

 1. Installation prefix ($prefix) : /Library/Php/Pear
 2. Temporary files directory     : $prefix/temp
 3. Binaries directory            : /usr/bin
 4. PHP code directory ($php_dir) : $prefix/PEAR
 5. Documentation base directory  : $php_dir/docs
 6. Data base directory           : $php_dir/data
 7. Tests base directory          : $php_dir/tests
カテゴリー: macosx タグ: ,

ubuntuのIPv6を切る方法

2010 年 10 月 22 日 コメントはありません

「/etc/sysctl.conf」に以下を追加

net.ipv6.conf.all.disable_ipv6 = 1

ググって上位にくるサイトでallがなかったり、=の両脇にスペースがなかったりしたので。

カテゴリー: linux タグ:

パスワード生成

2010 年 10 月 22 日 コメントはありません

CentOSでパスワード生成するコマンドmkpasswd
debian、ubuntuのmkpasswdとは別物

# yum install expect

大小英数字8文字からなるパスワードの生成

$ mkpasswd -l 8 -d 1 -c 1 -C 1 -s 0
カテゴリー: linux タグ: