Instagram api にアクセスできた

No Comments

前にphpを利用して、Instagram apiにログインできてないって、書いたけど今更だけどできた。
原因は、リダイレクト先のURLがおかしかった。

ということで、これでアクセストークンが取得できたので、自分の写真を取得できるようになった。これでまたなんか作りたいな。
シンプルにスライドショーとかでもいいけど、もっとなんか面白いことやってみたいな。。。

JSONPでシンプルなサンプル

No Comments

JSONPでPHPとJavascriptでのシンプルなサンプルを見つけたので、メモ。

<pre>var php='action.php';
var mc=document.createElement('script');
mc.type='text/javascript';
mc.src=php+'?callback=when_get_data';
document.getElementsByTagName('head')[0].appendChild(mc);

function when_get_data(m){
	m=eval(m);
	var a;
	var b="";
	for(a in m){
		b+=a+":"+m[a]+"\n";
	}
	get_item("output").innerHTML=b;
}</pre>
<pre><?php
$dat=array('name'=>'John', birthday=>'19731129', 'time'=>date('Y/m/d H:i:s'));
$res='(' . json_encode($dat) . ')';
if($_GET['callback']){
	$res=$_GET['callback'] . '(\'' . $res . '\');';
}
header('Content-Type: text/javascript; charset=utf-8');
echo $res;
?></pre>

参考サイト
http://zapruder.main.jp/blog/?p=628

Instagram APIのOAuthがうまく動かない・・・

1 Comment

Intagram APIネタ。

特に目的があるわけではないけど、Instagram APIをフルに使うにはOAuthでアカウントにログインする必要がある。
なので、PHPで動かしてやろうと思ってやってみた。

リダイレクト用のphp


<?php
$client_id = "hogehoge";
$redirect_uri = "http://istgm.branberyheag.com/callback.php";
header("Location: https://api.instagram.com/oauth/authorize/?client_id=".$client_id."&redirect_uri=".$redirect_uri."&response_type=code");
?>

コールバック後に取得するデータ


<?php
$client_id = "b2cb493b6e3d4775963ec9cd50ccabae";
$client_secret = "56d8d250d093428887194ca85bf29efd";
$redirect_uri = "http://istgm.branberyheag.com/";
$token_uri = 'https://api.instagram.com/oauth/access_token';

//-----[postするデータ]
$post = "client_id=".$client_id."&client_secret=".$client_secret."&grant_type=authorization_code&redirect_uri=".$redirect_uri."&code=".$_GET["code"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $token_uri);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$json = json_decode(curl_exec($ch));
curl_close($ch);
echo "access_token=".$json->access_token;
echo "username=".$json->user->username;
echo "profile_picture=".$json->user->profile_picture;
echo "id=".$json->user->id;
echo "full_name=".$json->user->full_name;
?>

5iveさんに書いてあったスクリプトを参考にしながら、作ってみた。

認証を通そうとして、やってみると

『http://instagram.com/oauth/authorize/?client_id=b2cb493b6e3d4775963ec9cd50ccabae&redirect_uri=http://istgm.branberyheag.com/callback.php&response_type=code にはファイルが見つかりませんでした。』

って感じになてしまう。

なんでなんだろう。。。

もう少し、調査が必要かもね。

Core ServerでPHPのPEARをインストールする方法

No Comments

Core Serverは、サーバ個別にライブラリをインストールするのはできない。

「go-pear」を使って、管理するのが楽のようだ。とりあえず、メモ。

More

Instagram APIを動かすPHPフレームワーク「Instaphp」

1 Comment

InstagramをPC上で操作、鑑賞ができるのはとても魅力的だと思う。

Webアプリを作る上でやはり、APIを理解して、PHPでの実装となると時間がかかる。
PHPフレームワークでInstagram APIを動かす「Instaphp」 っていうのがある。

More

PHPでJSONを取得するには・・・

No Comments

PHPでJSONを取得をしたいと思ったので、いろいろと調べてみた。
案外簡単。


<?php
 $json = file_get_contents("http://<em>url.of.web.api?パラメータ</em>");
?>

とりあえず、これだけで取得が可能。それ以降の処理は、こんな感じ。
file_get_contentsではなく、HTTP/Request.phpで処理する場合は、以下のようになるみたい。


<?php
 require_once('HTTP/Request.php');

 $request =new HTTP_Request( 'http://<em>url.of.web.api?パラメータ</em>' );
 $result = $request->sendRequest(); //リクエスト送信

 $json = $request->getResponseBody(); //レスポンスの本文を取得
?>

あとは、JSON関数で処理して、適宜いい感じに整形すれば終わり。


<?php
 $data = json_decode( $json ); //オブジェクトを返す
 $data = json_decode( $json , true ); //連想配列を返す
?>

Javascriptで処理が難しいようだったら、PHPで処理も簡単にできちゃうから、すごいね。

<参考サイト>

IEだけに起こるブラウザキャッシュの扱いについて

No Comments

今、やっている案件で、本来だと一度登録すると自動転送されるんだけど、
IEで画面遷移後にブラウザの戻るボタンで、戻れちゃう。別にPHP、JavaScriptには問題ないんだけどな。
調べてみると、IEとFF,Safari,Chormeでのキャッシュの思想が違うみたい。

More

twitterの画像のURLを取得する

No Comments

「すきなばしょ」でtwitter上に表記されている画像を各サービスから取得するためにURLについて調べていた。
多くのサービスが、URLを簡単に作って画像のパスをひろえるようなので、メモ。
※引用元があるのだけど、危険サイトに指定されていたため、リンクの貼るのをやめました。

* Twitpic (ドキュメント)

o ページ: http://twitpic.com/<image-id>
o サムネイル画像: http://twitpic.com/show/<size>/<image-id> More

bit.ly apiとphpをショートコードを作る

2 Comments

twitterにブログのタイトルとURLを送信する場合、普通のURLではちょっと長すぎて140文字の中でかなりとられてしまう。

ということで、bit.ly apiを使ってショートコードを作ってそれをtwitterに飛ばす More

simple XMLで名前空間を取得する方法

No Comments

PHPでXMLパースを使っている時にsimple XMLで文字列やデータを取得していると名前空間のタグ取得できなかった。

調べてみると・・・

属性を取得する場合は・・・


$feed->entry->title->attributes()->type;
//type属性を取得
//<title  type="text">【自民党ネットCM】ラーメン篇</title>

名前空間の場合・・・


$feed->entry->children('yt',true)->recorded;
//名前空間のある要素を取得
//<yt:recorded>2009-08-21</yt:recorded>

何気に困ったので、メモ。

Older Entries