API関連

Facebook Developersでアプリを登録する。

以前使用していた時から結構インターフェースが変わったので、改めて登録方法。

https://developers.facebook.com/

にアクセスします。

WS001094

上のメニューから「My Apps」を選択します。

 

WS001095

登録済みのアプリ一覧が表示されます。

右上の「Add a New App」ボタンをクリックします。

 

WS001096

どのアプリを作るか選択します。
今回はPage Plugin用のアプリを作りたいので、ウェブサイトを選択します。

 

WS001097

アプリ名を入力します。

アプリ名を入力すると、下図のようになります。

WS001098

Create New Facebook App IDボタンをクリックします。

 

WS001099

カテゴリを選択して、右下の「Create App ID」ボタンをクリックします。

 

下図のような画面になります。

WS001108

少し下に行くと、Tell us about your websiteというフィールドがあります。

WS001100

Site URL と Mobile Site URLを入力し、Nextボタンをクリックします。

 

下図のような画面になります。

WS001101

さらに下へスクロールするとフィニッシュです。

 

さて、このままでは、まだアプリとしては非公開状態です。

Page Pluginのコード取得時に、このアプリを選択しても

This app is in Development Mode and not available publicly.
公開モード can be enabled in the App Dashboard.

というエラーメッセージが表示されてしまいます。

公開状態にするには、まずメニューからMy Appsを選択し、登録されているアプリ一覧を表示します。

WS001109

新規登録したアプリを選択します。

WS001110

左メニューからSettingsを選択します。

WS001111

「Basic」タブブロックの右下にある「Contact Email」にメールアドレスを入力し、「Save Changes」ボタンをクリックします。

 

左メニューの「Status & Review」を選択します。

WS001112

上図の赤枠部分をクリックし、Yesにします。

クリックすると、下図のようにメッセージが表示されるので、承認をクリックします。

WS001113

以上で、公開状態となり、使用できるようになります。

総合管理者 | 2015年04月30日 | コメント(0) | トラックバック(0) | API関連 | アプリ関連

Like Boxもうすぐ終了 Page Pluginへ乗り換え

FacebookのLike Boxも、もうすぐ終了するそうです。

FacebookのLike Boxは2015年6月23日で終了。Page Pluginに変わります

代わりに提供されている「Page Plugin」へ乗り換えます。

https://developers.facebook.com/docs/plugins/page-plugin

へアクセス。

下図のブロックで

WS001107

  • Facebook Page URL
  • Width
  • Height
  • Hide Cover Photo
  • Show Page Posts
  • Show Friend's Faces

を設定します。

最後にGet Codeボタンをクリックして、コードを取得します。

WS001106

ほぼLikeboxの時と変わりませんが、問題点として、

  • Widthの最小値(280px)および最大値(500px)が決まっている。
  • Heightの最小値が決まっている。

という点があります。

特にWidthの最小値・最大値が決まっているのは痛いです。

サイドバーに持ってくるにも、メインブロックに持ってくるにも何とも半端でどうしたものか。

このあたりのサイズが最近の流行なんですかね?

 

追記

あれ?この記事読み返してたら、いいね!も昔のコード使えなくなるみたいじゃん。

FacebookのLike Boxは2015年6月23日で終了。Page Pluginに変わります

マジかよ・・・

総合管理者 | 2015年04月30日 | コメント(0) | トラックバック(0) | API関連 | SNS関連

RSS Graffiti本日終了 dlvr.itへ乗り換え

WordPressやMovable Type、なんでもいいのですがRSSが出力できれば、それを元にFacebookへ投稿できる「RSS Graffiti」が本日、2015年4月30日をもって終了するそうです。

ということで、急いで乗り換え。

色々候補は有ったのですが、最終的に「dlvr.it」を使うことにしました。

https://dlvr.it/

まずは、アカウントを作成します。

WS001093

右にある「Sign up」ボタンをクリックして、アカウントを作成してください。
FacebookやTwitterアカウントを持っている場合は、それでもログイン可能です。

アカウント作成、またはログインが成功すると、下図の画面になります。
How would you like to start sharing content?

WS001077

左の「Start Feeding」ボタンをクリックします。

 

WS001078

左の「Source」にフィードのURLを入力します。
Your blog or other website URLと書いてますがフィードのURLです。
例:http://www.nandani.sakura.ne.jp/feed

ラジオボタンでは、次からの投稿を反映させたい場合は、「Wait until a new item is posted.」を選択してください。

URLの入力が成功すると、自動的に正常なURLかどうかを判断して、右の「Choose a Destination」のボタンを選択できるようになります。

今回はFacebookへの投稿なので、Facebookボタンをクリックします。

Facebookログイン画面がポップアップウィンドウで開きますので、Facebookへログインしてください。(すでにFacebookへログインしている場合は、次へ)

一番最初の登録の場合、dlvr.itからFacebookへのアクセスを許可してよいかという画面が開きますが、許可していってください。

最終的に下図の画面になります。

WS001079

プルダウンで、どのタイムラインに投稿するかを選択してください。
Facebookページの権限を持っている場合は、それも選択可能です。
プルダウンを選択したら「Continue」ボタンをクリックしてください。

 

最後の画面になります。

WS001080

右下の「Done」を選択してください。

登録が成功すると、下図のメッセージが開きます。

WS001081

以上が最初の登録です。

 

2回目以降の新規登録

2回目以降の新規登録は左上の「+ Add Route」ボタンから登録します。

WS001082

微妙にインターフェースが変わりますが、やることはほぼ同じです。

 

WS001083

左の「Source」の「+ Add」ボタンをクリックします。

 

WS001084

フィードボタンをクリックします。

 

WS001085

Feed URLを入力し、どのタイミングからタイムラインに投稿するかをプルダウンで選択します。

「save source」ボタンをクリックします。

 

WS001086

続いて右の「Destinations」の「+Add」ボタンをクリックします。

 

WS001087

「Facebook」ボタンをクリックします。

 

WS001088

「Connect to Facebook」ボタンをクリックします。

 

WS001089

※ログイン中の場合は、自動的にログインしているFacebookのアカウントで上記の画面となります。

プルダウンで投稿先タイムラインを選択し、「Continue」ボタンをクリックします。

 

最後に「Save」します。

 

同じタイムラインに複数のフィードを登録する場合

同じタイムラインに複数フィードを登録する場合は、すでに登録済みの「Source」の「+Add」から片側のみを登録します。

WS001090

複数登録されるとこんな感じになります。

 

WS001092

総合管理者 | 2015年04月30日 | コメント(0) | トラックバック(0) | API関連 | SNS関連

Facebookページのタイムラインを取得する方法

Facebookページのタイムラインを取得する方法のメモ。

タイムラインは以前紹介したアルバムや写真を取得する方法よりも、ひと手間かかります。(アクセストークンを取得する必要があるため)

プログラムは下記の通り。


<?php
/*
facebookページのタイムラインを取得する
*/

$facebook_page_id = '...';    //FacebookページのID
$access_token = '...';        //アクセストークン
$url = "https://graph.facebook.com/".$facebook_page_id."/feed?access_token=".$access_token;
$res = file_get_contents($url);
$data_array = json_decode($res, TRUE);

if(!empty($data_array["data"])){
print_r($data_array["data"]);
}
?>

 

○「$facebook_page_id」には、FacebookページのIDを代入してください。

IDはFacebookページを開いたときのURL「https://www.facebook.com/〇〇〇〇」の○○○○部分か、もしくは「https://www.facebook.com/pages/□□□□/○○○○?ref=hl」の○○○○部分。

※前者の例
https://www.facebook.com/FacebookJapan
の場合は「FacebookJapan」

※後者の例
https://www.facebook.com/pages/ダリの雑記/12345678901234567?ref=hl
の場合は「12345678901234567」(こんなURLはありませんがw)

 

○「$access_token」には、アクセストークンを代入します。

アクセストークンの取得方法は、以下の通り。

  1. https://developers.facebook.com/apps にアクセスし、「新しいアプリを作成」からアプリを作成します。(アプリ作成と言っても、ほぼアプリ名を重複しないように決めるだけ)
  2. アプリを作成すると、基本設定画面にて「App ID」と「App Secret」が取得できます。
    WS000282
  3. 「App ID」と「App Secret」を下記のURLに代入し、アクセスします。
    https://graph.facebook.com/oauth/access_token?client_id=(App ID)&client_secret=(App Secret)&grant_type=client_credentials
  4. アクセスすると、
    WS000283
    という風に表示されます。これがアクセストークンです。
    この値を「$access_token」に代入してください。

以上の2つを代入後、PHPを実行してください。

う~む。そのうちアルバムや写真もアクセストークンが必要になるのかな?

 

参考サイト

ソーシャルメディアAPIリファレンス - ウォールを取得する

Access Tokenを取得する

Graph API : Facebook開発者向けドキュメントの日本語訳とTips

nandani | 2013年10月22日 | コメント(0) | トラックバック(0) | API関連 | PHP関連

get_postsで取得したデータでも、ショートコードを実行する【WordPress】

メモ。

the_content()で表示した「内容」ならば自動的にショートコードが実行されるのですが、get_postsで取得した記事の「内容(例えば$hoge->post_content)」では、ショートコードが実行されません。

そのままショートコードが表示されてしまいます。

そういう場合は、do_shortcode関数を使用しましょう。

do_shortcode($hoge->post_content);

これで、内容中に含まれるショートコードが実行されるようになります。

なお、get_the_content()でも同様にショートコードが実行されませんので同じく

do_shortcode(get_the_content());

としてください。

参考サイト

WordPress: フィルターより前にショートコードを実行させる | 半月記 @ 半月記半月記

do_shortcode:WordPress私的マニュアル

nandani | 2013年06月21日 | コメント(0) | トラックバック(0) | API関連 | CMS関連

PHPで自分のつぶやきを取得する方法【API1.1】

やり方についてはほぼこちらのサイトを参考にしています。

PHP+OAuthでTwitter - SDN Project

  1. twitteroauthをダウンロードします。
  2. アプリ登録を行います。
    登録が完了するとアプリケーションの詳細画面になります。
    そこで「Consumer key」と「Consumer secret」が表示されますのでメモします。
  3. アプリケーション画面の下の方にある「Create my access token」ボタンをクリックします。
    処理後、ボタンの上の方に「Access token」と「Access token secret」が表示されますのでメモします。
  4. 下記のプログラムで自分のつぶやきを取得します。
<?php

//1.でダウンロードしたtwitteroauth.phpをinclude
require_once('./twitteroauth/twitteroauth.php');

//2.3.で取得した各キーを入力
$consumer_key = 'Consumer key';
$consumer_secret = 'Consumer secret';
$access_token = 'Access token';
$access_token_secret = 'Access token secret';

// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

// user_timelineの取得。TwitterからXML形式が返ってくる
$req = $to->OAuthRequest("https://api.twitter.com/1.1/statuses/user_timeline.json","GET",array("q"=>"dari_zakki", "count"=>"10"));

// Twitterから返されたJSONをデコードする
$results = json_decode($req);


echo '<ul>';
foreach($results as $value){
	echo '<li>';
	echo '<img src="'.$value->user->profile_image_url.'" /><br />';
	echo $value->text.'<br />';
	echo $value->user->name.'<br />';
	echo date("Y-m-d H:i:s", strtotime($value->created_at));
	echo '</li>';
}
echo '</ul>';
?>

これで自分がつぶやいたタイムラインを取得できます。

前に比べるとめんどくさくなりましたね。

まあ前が緩すぎたって話ではあるんですが^^;

 

参考サイト

PHP+OAuthでTwitter - SDN Project

PHPで『Twitter API 1.1』を使って、つぶやきの検索結果を取得したときのメモ | ユメミチ

nandani | 2013年06月20日 | コメント(0) | トラックバック(0) | API関連 | PHP関連

TwitterのAPIの仕様変更

Twitterのタイムラインを

http://twitter.com/statuses/user_timeline.xml?id=(アカウント名)

でデータ取得していたのですが、仕様変更に伴い上記では取得できなくなったです。

調べたところ、URLにバージョン情報を含まないといけなくなったみたい。

以降は

http://api.twitter.com/1/statuses/user_timeline.xml?id=(アカウント名)

で取得するようにしましょう。

 

参考サイト

Twitter APIの仕様変更によってあちこちのアプリでエラーが出てるみたいなので、その対処方法の話。 &raquo; とりあえず9JP

Twitter REST APIでタイムラインを取得して、Twitter-text-phpでアンカー表示 | はるる*Weblog

nandani | 2012年10月15日 | コメント(2) | トラックバック(0) | API関連 | PHP関連

ちょ!?Facebookボタンがえらいことに

たった今気づいたんですが、Facebookボタンの表示がかなりおかしなことになってます。

ログアウトしている状態なら普通なんですが、ログインしているとこんな感じ

なんじゃこりゃ~!!

と思ったら、どうやらFirefox3.6系だけみたい。

そろそろ3.6系も潮時かな・・・

↑間違いでした。

Facebookページとしてログインしていると(Facebookページの管理者権限を持っているユーザでFacebookにログインし、そのFacebookページにアクセスしている状態)どのブラウザでもなるようです。

nandani | 2012年01月14日 | コメント(2) | トラックバック(0) | API関連

Facebookページにある"すべての"アルバムの写真をPHPで取得する方法

前回は特定のアルバムのみの写真を取得する方法を記述しました。

今度はFacebookページにあるすべてのアルバムの写真を取得する方法です。

必要なのはPHP5.2以上が動作するサーバ環境(json_decodeがいるので)と、そのFacebookページのID情報です。

ためしにFacebook Japanの公式Facebookページにあるすべてのアルバムの写真情報を取得し、写真を一覧表示します。

まずFacebookページIDですが、前回同様「Facebookスポット」アルバムページのURLをご覧ください。

http://www.facebook.com/media/set/?set=a.428510844023.214836.365989369023&type=3

今度は最後の「.」から「&type=3」までにある数字を取得してください。

つまり「365989369023」です。

これがFacebookIDです。

これを以下のサンプルプログラムの中にある「$fbpage_id」変数に代入します。


$fbpage_id = '365989369023';	//FacebookページID
$thumb_size_set = 3;    //サムネイルのサイズ

//アルバム情報を取得する
$albums_url = "http://graph.facebook.com/".$fbpage_id."/albums/";
$albums_res = file_get_contents($albums_url);
$albums_array = json_decode($albums_res, TRUE);

if(!empty($albums_array["data"])){
	foreach($albums_array["data"] as $albums_values){
		
		//アルバム内の写真情報を取得する
		$album_id = $albums_values["id"];
		$photos_url = "http://graph.facebook.com/".$album_id."/photos/";
		$photos_res = file_get_contents($photos_url);
		$photos_array = json_decode($photos_res, TRUE);
		
		if(!empty($photos_array["data"])){
			
			$albums_link = $albums_values["link"];
			$albums_name = $albums_values["name"];
			echo '<h2><a href="'.$albums_link.'" target="_blank">'.$albums_name.'</a></h2>'."\r\n";
			
			foreach($photos_array["data"] as $photos_values){
				
				$thumb_size_count = count($photos_values["images"]);
				for($i=$thumb_size_set; $i > 0; $i--){
					if($thumb_size_count > $i){
						$thumb_size = $thumb_size_count - $i;
						break;
					}
				}
				
				$photo_name = $photos_values["name"];
				$photo_path = $photos_values["link"];
				$photo_thumb_path = $photos_values["images"][$thumb_size]["source"];
				$photo_thumb_width = $photos_values["images"][$thumb_size]["width"];
				$photo_thumb_height = $photos_values["images"][$thumb_size]["height"];
				
				echo '<p><a href="'.$photo_path.'" target="_blank"><img src="'.$photo_thumb_path.'" width="'.$photo_thumb_width.'" height="'.$photo_thumb_height.'" alt="'.$photo_name.'" /></a></p>'."\r\n";
			}
		}
	}
}

サンプルを実行する

なお、結構表示まで時間がかかります。

nandani | 2011年12月14日 | コメント(5) | トラックバック(1) | API関連 | PHP関連

Facebookページにある"特定の"アルバムの写真をPHPで取得する方法

Facebookページを見ると、左のメニューに「写真」という項目があるページをよく見かけます。

その名の通り、アルバムごとに写真をアップし、公開することができるわけですが、このアルバムの写真情報をPHPで取得することができます。

必要なのはPHP5.2以上が動作するサーバ環境(json_decodeがいるので)と、そのアルバムのID情報です。

ためしにFacebook Japanの公式Facebookページにある、アルバム「Facebookスポット」の写真情報を取得し、写真を一覧表示します。

まずアルバムIDですが、「Facebookスポット」アルバムページのURLをご覧ください。

http://www.facebook.com/media/set/?set=a.428510844023.214836.365989369023&type=3

というURLになっています。

いくつか数字の羅列が並んでいますが、必要なのは「a.」から次の「.」までの数字。

つまり「428510844023」です。

これを以下のサンプルプログラムの中にある「$album_id」変数に代入します。


$album_id = '428510844023';	//アルバムID
$thumb_size_set = 3;	//サムネイルのサイズ
$limit=0;	//取得したい最大枚数(0とするとデフォルト設定の25枚)

$url = "http://graph.facebook.com/".$album_id."/photos/?limit=".$limit;
$res = file_get_contents($url);
$data_array = json_decode($res, TRUE);

if(!empty($data_array["data"])){
	foreach($data_array["data"] as $values){

		$thumb_size_count = count($values["images"]);
		for($i=$thumb_size_set; $i > 0; $i--){
			if($thumb_size_count > $i){
				$thumb_size = $thumb_size_count - $i;
				break;
			}
		}

		$photo_name = $values["name"];
		$photo_link = $values["link"];
		$photo_thumb_path = $values["images"][$thumb_size]["source"];
		$photo_thumb_width = $values["images"][$thumb_size]["width"];
		$photo_thumb_height = $values["images"][$thumb_size]["height"];

		echo '<p><a href="'.$photo_link.'"><img src="'.$photo_thumb_path.'" width="'.$photo_thumb_width.'" height="'.$photo_thumb_height.'" alt="'.$photo_name.'" /></a></p>';
	}
}

サンプルを実行する

もちろん閲覧者がFacebookにログインする必要はありません。

非常に簡単ですね。

※枚数が多くなると重くなるので、キャッシュを取るなどの対策をすることをお勧めします。

 

参考にさせていただいたサイト

facebookのアルバム写真をJSONで取得して表示する with jQuery | Benjamin

nandani | 2011年12月14日 | コメント(4) | トラックバック(1) | API関連 | PHP関連

Copyright(c) 2010 - 2017 ダリの雑記