Instagram api にアクセスできた
10/26
前にphpを利用して、Instagram apiにログインできてないって、書いたけど今更だけどできた。
原因は、リダイレクト先のURLがおかしかった。
ということで、これでアクセストークンが取得できたので、自分の写真を取得できるようになった。これでまたなんか作りたいな。
シンプルにスライドショーとかでもいいけど、もっとなんか面白いことやってみたいな。。。
ActionScript3.0やJavascriptを使っていろんなものを作ってみます。
10/26
前にphpを利用して、Instagram apiにログインできてないって、書いたけど今更だけどできた。
原因は、リダイレクト先のURLがおかしかった。
ということで、これでアクセストークンが取得できたので、自分の写真を取得できるようになった。これでまたなんか作りたいな。
シンプルにスライドショーとかでもいいけど、もっとなんか面白いことやってみたいな。。。
04/20
JavaScript, PHP 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>
04/19
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 にはファイルが見つかりませんでした。』
って感じになてしまう。
なんでなんだろう。。。
もう少し、調査が必要かもね。
03/23
InstagramをPC上で操作、鑑賞ができるのはとても魅力的だと思う。
Webアプリを作る上でやはり、APIを理解して、PHPでの実装となると時間がかかる。
PHPフレームワークでInstagram APIを動かす「Instaphp」 っていうのがある。
03/22
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で処理も簡単にできちゃうから、すごいね。
<参考サイト>
12/26
今、やっている案件で、本来だと一度登録すると自動転送されるんだけど、
IEで画面遷移後にブラウザの戻るボタンで、戻れちゃう。別にPHP、JavaScriptには問題ないんだけどな。
調べてみると、IEとFF,Safari,Chormeでのキャッシュの思想が違うみたい。
08/18
「すきなばしょ」でtwitter上に表記されている画像を各サービスから取得するためにURLについて調べていた。
多くのサービスが、URLを簡単に作って画像のパスをひろえるようなので、メモ。
※引用元があるのだけど、危険サイトに指定されていたため、リンクの貼るのをやめました。
* Twitpic (ドキュメント)
o ページ: http://twitpic.com/<image-id>
o サムネイル画像: http://twitpic.com/show/<size>/<image-id> More
05/26
twitterにブログのタイトルとURLを送信する場合、普通のURLではちょっと長すぎて140文字の中でかなりとられてしまう。
ということで、bit.ly apiを使ってショートコードを作ってそれをtwitterに飛ばす More
04/21
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>
何気に困ったので、メモ。