FacebookアプリのCookieをIEで有効にする方法

 

FacebookアプリをIEことInternet Explorerへ対応する方法を調べたのでメモ。
 

Facebookページ内に埋め込むタイプのFacebookアプリは、iframe内で別ドメインのコンテンツを読み込んで動作しています。
 

iframeで別ドメインのコンテンツを読み込むと、そのCookieはサードパーティーのCookieとなります。IEのデフォルトでは、ポリシーが定義されていないサードパーティーのCookieは受け入れないようになっていて、P3P (www.w3.org)でポリシーを宣言すれば受け入れられるようになります。

・引用元:P3Pコンパクトポリシーをコピペするのが流行らないことを祈る | 水無月ばけらのえび日記 はてなブックマーク - P3Pコンパクトポリシーをコピペするのが流行らないことを祈る | 水無月ばけらのえび日記

 

IEの場合、デフォルトの設定で「P3Pコンパクトポリシーが定義されていないサードパーティーcookieは受け入れない」動作となっている為、Facebookアプリでも、FirefoxやChromeだとちゃんと動くのにIEだとなぜか動かない…という現象に遭遇したりします。

・引用元:FacebookアプリのCookieがIEで無効になってしまう現象を回避する方法 – でぶぬる日記 はてなブックマーク - FacebookアプリのCookieがIEで無効になってしまう現象を回避する方法 - でぶぬる日記

 

解決方法は、レスポンスのHTTP headerに具体的なポリシーの内容を出力するだけでOKです。
 

■ Ruby on Rails
 

1
2
3
4
5
6
# application_controller.rb
before_filter :ie_p3p_fix
 
def ie_p3p_fix
  response.headers["P3P"] = 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'
end

 

■ PHP
 

1
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

 

以上です。
 
 

【参考】

FacebookアプリのCookieがIEで無効になってしまう現象を回避する方法 – でぶぬる日記 はてなブックマーク - FacebookアプリのCookieがIEで無効になってしまう現象を回避する方法 - でぶぬる日記

Facebookアプリ作ってて困った事というか、IEでiframe内の別ドメインのページでもクッキーを有効にする方法とか、セキュリティレベルを下げずにCookieを有効にする方法とか – kissrobberの日記 はてなブックマーク - Facebookアプリ作ってて困った事というか、IEでiframe内の別ドメインのページでもクッキーを有効にする方法とか、セキュリティレベルを下げずにCookieを有効にする方法とか - kissrobberの日記

IE/SafariでFacebookアプリの無限reload対策 はてなブックマーク - IE/SafariでFacebookアプリの無限reload対策

php – Facebook iframe not working in IE; session/login issue? – Stack Overflow はてなブックマーク - php - Facebook iframe not working in IE; session/login issue? - Stack Overflow

session – Facebook app works on all browsers but not IE8 – Stack Overflow はてなブックマーク - session - Facebook app works on all browsers but not IE8 - Stack Overflow
 

Heroku-ja Meetup #1 スライドまとめ

 

最近、Herokuを使い始めて、「Heroku-ja Meetup #1」というイベントが開催されていたことを知り、発表されたスライド資料をまとめてみました。
 

Heroku-ja Meetup #1 : ATND はてなブックマーク - Heroku-ja Meetup #1 : ATND
 

 

請求書.jp はてなブックマーク - 請求書.jp
 
 

・スライド:Herokuをいろいろ触ってみた | SonicGarden / mat_aki はてなブックマーク - Herokuをいろいろ触ってみた
 
 

 

Heroku-ja Meetup #1でLokkaのLTさせてもらいました – komagata はてなブックマーク - Heroku-ja Meetup #1でLokkaのLTさせてもらいました - komagata
 
 

 

Heroku-ja Meetup #2 があるときはぜひ参加したいです。
 

[Facebookアプリ] JavaScript SDK は必ず https で利用すべし

 

Facebookアプリにて、JavaScript SDK を使う場合は、SSLで利用しないとIEで上手く動作しないなどのバグが発生してしまいます。
 

JavaScript SDKを利用するには、ほとんど Facebook Connect はSSLでも利用できるので、今まで

1
<script src="http://connect.facebook.net/en_US/all.js"></script>

としていたのなら

1
<script src="https://connect.facebook.net/en_US/all.js"></script>

に置き換えるだけでOKです。
 

httpsのページに部分的にセキュアでない接続が混在しているとブラウザ(特にIE)によっては正常に動作しないので注意が必要です。
 

【参考】

JavaScript SDK – Facebook Developers はてなブックマーク - JavaScript SDK - Facebook Developers
 

[JS] jQueryが読み込まれているか確認する方法

 

jQueryが読み込まれているか確認する方法を調べたのでメモ。
 

jQueryを使い始めたばかりだと「$が定義されてません」というエラー「$ is not defined」がよく発生します。
 

以下のコードではtypeof演算子で jQuery が定義されているか確認して、定義されている場合はアラートを表示させています。
 

1
2
3
4
5
if(typeof jQuery != "undefined"){ //jQueryの読み込み確認
    $(function(){
        alert('jQuery is ready.')
    });
}

 

以上です。
 

【参考】

jQueryが読み込まれているか判別する方法 – 小窓屋めがね はてなブックマーク - jQueryが読み込まれているか判別する方法 - 小窓屋めがね

typeof演算子 – 演算子 – JavaScript入門 はてなブックマーク - typeof演算子 - 演算子 - JavaScript入門
 

[Rails] Heroku標準のPostgreSQLへのdb:migrateをやり直す方法

Herokuで強制的にdb:migrateをやり直す方法を調べたのでメモ。

まず、HerokuではRails標準のrake db:resetは使えません。

代わりに、pg:resetコマンドで Herokuの標準のpostgresのDBをリセットすることができます。

$ heroku pg:reset --db SHARED_DATABASE_URL

コマンド実行後、確認のためプロンプトが表示されるので、アプリ名を入力するとリセットが実行されます。

ちなみに、SHARED_DATABASE_URLは以下のコマンドで確認できます。

$ heroku console
Ruby console for codenote.heroku.com
>> ENV['DATABASE_URL']
=> "postgres://username:password@ec2-000-00-000-00.compute-1.amazonaws.com/dbname"

・参考:Heroku | Dev Center | PostgreSQL はてなブックマーク - Heroku | Dev Center | PostgreSQL
 

他にも、db:migrateをやり直す方法があり、VERSION=0 を指定することで最初にdb:migrateする前の初期状態に戻すことができます。

(最初にdb:migrateしたときのマイグレーションファイルが存在することが前提)

$ heroku rake db:migrate VERSION=0

また、db:migrate:redo で何回か前の状態(STEP=回数)に戻すこともできます。

$ heroku rake db:migrate:redo STEP=10

以上です。

【参考】

[Rails][Heroku] Herokuで強制的にdb:migrateをやり直す。その2 – mat_akiの日記 はてなブックマーク - [Rails][Heroku] Herokuで強制的にdb:migrateをやり直す。その2 - mat_akiの日記

Herokuで強制的にdb:migrateをやり直す。 – このブログは証明できない。 はてなブックマーク - Herokuで強制的にdb:migrateをやり直す。 - このブログは証明できない。

Ruby on Rails Guides: Migrations はてなブックマーク - Ruby on Rails Guides: Migrations
 

[Facebook API] IFrameタブページでスクロールバーを消す関数 setAutoGrow()

Facebook にて IFrame タブページでスクロールバーを表示しない関数は setAutoGrow() を使います。

従来までの setAutoResize は2011年12月31日までしか使えません。

続きを読む

[Mail] メールシステムをカンタンに理解できるスライド資料

メールシステムをカンタンに理解できるスライド資料があったのでメモ。

[Facebook] Upgrade Your App to OAuth 2.0 and HTTPS by October 1st

 

Facebookから「Upgrade Your App to OAuth 2.0 and HTTPS by October 1st」というタイトルのメールが着ました。
 

要約すると、2011年10月1日からFacebookアプリに「HTTPS+OAuth2.0」の利用を義務付けるとのことです。
 

以下、Facebookからのメールです。
 


 

—-
Dear Developer of Your App,

Reminder: Upgrade Your App to OAuth 2.0 and HTTPS by October 1st. In May we announced that all apps on Facebook need to support OAuth 2.0 and HTTPS to make the platform more secure.

All apps, including page tab apps, must migrate to OAuth 2.0 for authentication. The old SDKs, including the old JavaScript SDK (FeatureLoader.js) and old iOS SDK (facebook-iphone-sdk) will no longer work. In addition, iframe Canvas and Page Tab apps must support HTTPS and provide a secure canvas or secure page tab URL.

If you haven’t already made these changes, visit the Developer Roadmap before October 1st for more information about how to upgrade your app and avoid having it disabled.

You can also seek support in the Facebook Developer Group: https://www.facebook.com/groups/fbdevelopers/

Thank You,
Facebook Developer Relations
—-
 

・参考:Facebookアプリ「HTTPS+OAuth2.0」の利用を義務付けへ: 小粋空間 はてなブックマーク - Facebookアプリ「HTTPS+OAuth2.0」の利用を義務付けへ: 小粋空間
 

以上です。
 

Amazon Product Advertising APIの仕様変更が2011年10月26日(水)に実施

 

Amazonの提供する、Product Advertising APIの仕様変更が、当初の予定通り2011年10月26日(水)に実施されるそうです。
 


 

仕様変更に先立ちProduct Advertising API開発者のみなさまに余裕を持ってご準備頂けるよう、実際の変更内容を体験頂く機会をご用意いたしました。
 

日程:

■2011年10月19日(水)午後3:00 – 午後7:00
 

期間中は仕様変更後と同じオペレーションおよびレスポンスグループを体験頂くことができます。

仕様変更の詳細については、以下のリンクをご参照ください。

Product Advertising API はてなブックマーク - Product Advertising API

Product Advertising API はてなブックマーク - Product Advertising API
 

以上です。
 

[Linux] renameコマンドでファイル名の末尾を一括変更する

 

Linuxでファイル名を一括変更する rename コマンドで、ファイル名の末尾を一括変更する方法を調べたのでメモ。
 

■ renameコマンドの使い方

書式

1
$ rename from to file...

from 置き換え前の文字列

to 置き換え後の文字列

file… 変換対象のファイル
 

■ ファイル名の末尾を一括変更するコマンド

1
$ rename 's/\./_t\./' *

【参考】

UNIXの部屋 コマンド検索:rename (*BSD/Linux) はてなブックマーク - UNIXの部屋 コマンド検索:rename (*BSD/Linux)

PHP正規表現チェッカー はてなブックマーク - PHP正規表現チェッカー