Facebook API ver1.0はいつまで使える?新規作成アプリでも使える?

7.23
2014

fbapiv2
Facebook API ver1.0は、2014/4/30以降に作成されたアプリでは使えません。
例え、明示的に「version : ‘v1.0’」と指定したとしても、使えませんでした。
(正確には、v1.0で呼び出されているものの、挙動としてはv2.0と同じになっていました。)

逆に、2014/4/30よりも前に作成したアプリでは、バージョンの指定が無いとv1.0が呼び出され、挙動もちゃんとv1.0です。
明示的に「version : ‘v2.0’」と指定すれば、v2.0が呼び出されます。

なぜ2014/4/30の前後で異なるのか?

2014/4/30に、「f8」と呼ばれるFacebookのデベロッパー向けのカンファレンスが開催されました。
その際に、APIにバージョン管理が導入されることや、その移行スケジュール等が発表になっています。

下記のブログに非常に詳しくまとまっていますので、是非ご一読を。

f8 2014 の発表: API バージョニングと注意点 : Facebook開発者向けドキュメントの日本語訳とTips
http://facebook-docs.oklahome.net/archives/52156714.html

この「f8」当日にAPIのバージョン2.0がリリースされたことにより、旧バージョンにあたるv1.0はここから1年間(2015/4/30まで)の保証となりました。

v1.0とv2.0で違う点は?

色々と異なる点は多いのですが、特に大きなものが、アプリのパーミッション周りの変更です。
下記の記事も参考にしてください。

Facebookログイン Version2.0(アプリのパーミッション仕様変更)
http://snowadays.jp/2014/05/2762

読み取りの権限が最低限のものを除き申請しないと使えなくなったことに加えて、投稿の権限に関しては申請必須なだけでなく、scope自体も変わっています。
(「publish_stream」「photo_upload」というパーミッションが廃止され、「publish_actions」に統合)

2014/4/30以降に作ったアプリでは、APIバージョン1.0は本当に使えない?

冒頭でも書きましたが、ダメでした。
(むしろ、出来るなら教えてほしいです・・・)

お馴染みのStack Overflow初めとして色々と情報を漁ってみましたが、出来ないという情報しかありません。
一応自分でも試してみました。

	FB.init({
		appId   : '{app-id}',
		xfbml   : true,
		version : 'v1.0',
		status  : true,
		cookie  : true,
		oauth   : true
	});

こんな感じで、FB.init内でバージョンの指定が出来るんですね。
で、こうしたうえで、{app-id}に4/30以降に作成したアプリのIDを指定して、それでもってFB.loginのscopeで「publish_stream」を指定します。
もし、バージョン1.0のAPIが使えるなら、これでウォールへの投稿が出来るはず。
(バージョン1.0では、publish_streamの申請は不要でした。)

デモページ

↑実際にそれで作ってみました。指定してるアプリは4/30以降に作成したアプリです。結果、ダメでした。
ログインのダイアログが開く際には、GETでv1.0とわたってるのでちょっと期待したんですが、結局挙動としてはv2.0と同じ。
当然、バージョン2.0では「publish_stream」は廃止されているので、ウォールへの投稿はされません。

※デモページのログインボタンをクリックするとFacebookアカウントでのログイン、及びアプリの承認が走ります。
※クリックしてもウォールへの投稿はされませんが、万が一投稿されてしまった場合は「Hello World」という投稿が行われますので、ご自分で削除してくださいw

ということで、結局のところもうバージョン2.0への移行を始めなければなりません。
パーミッション(特にpublish_actions)の申請周りについては、以下の記事を参考にしてみてください。

Facebookアプリのパーミッション「publish_actions」を申請してみてわかったことまとめ
http://snowadays.jp/2014/06/2790

Facebookアプリのテストユーザーを利用してpublish_actions等を審査前に動作確認する
http://snowadays.jp/2014/06/2851