Android+Facebook連携で、
「Configure your app key hashes at http://developers.facebook.com....」
というエラーで苦戦しました。。。
要はKey Hashesが間違っているのですが、
このKey Hashesの登録方法は以下となります。
1.Facebook.java「authorizeCallback」の「Failed to receive access token」あたりにブレークポイント
2.dataの「mExtras」にエラーメッセージ「invalid_key:Android key mismatch. Your key…」というエラーが出力
3.このエラー内に「The key」の後に続く文字がキーハッシュ。
でも、ここがトラップで、「XXXXXXXX_XXXXXXXXXX」のようなデータフォーマットで出てきた場合、
そのままこのハッシュ値をFacebook Developersの「Key Hashes」に登録しても全然動きません。。。
注意点は「_」(アンダースコア)
「_」は「/」に変換してくださいね。
そして、終端に「=」を付け忘れないように。
「XXXXXXXX_XXXXXXXXXX」は「XXXXXXXX/XXXXXXXXXX=」で登録しましょう。
opensslで実行する場合は、デバッグ版とリリース版でちょっと違います。
[デバッグ用]
keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64
パスワード:android
この「androiddebugkey」は固定。
「debug.keystore」はだいたい「C:\Documents and Settings\ログイン名\.android」にいます。
[リリース用]
keytool -exportcert -alias リリース用キー名 -keystore リリース用キー | openssl sha1 -binary | openssl base64
パスワード:リリース用キーのパスワード
OpenCVの設定にすごくとまどったので、備忘録。
1.まず、以下のリンクから、opencv2.frameworkをダウンロード
http://sourceforge.net/projects/opencvlibrary/files/opencv-ios/2.4.3/
opencv2.framework.zipからダウンロードしてください。
OpenCV-2.4.3.tar.bz2はビルド用ですが、ここからダウンロードしても
ビルドするための十分な設定ファイル等が不足しているようです。(2013/2月現在 ビルド失敗しました。)
opencv2.framework.zipからのダウンロードを強くオススメします。
こちらのファイルは面倒なビルドも不要で、Frameworkの設定でOKです!
2.プロジェクトフォルダに先ほどダウンロードしたopencv2.frameworkをコピーします。
それから、opencv2.frameworkをプロジェクトに配置します。
3.ここでビルドするとエラーが出まくります。
以下の設定をしてください。
・Accelerate.frameworkの追加
・AssetsLibrary.frameworkの追加
・AVFoundation.frameworkの追加
・Build SettingsのOther Linker Flagsに「 -lstdc++ -lz -lc++」を追加
※ヘッダファイルやリンカは、framework化のためなくても動きます。
4.それでもエラーが出る場合は、ちょっとわかりません。。。
2012/2/19 追記
XCode4.2で、iPhone4.3 Simulatorで起動すると、リンカエラーになります。
これはどうにもならなかったのでXCode4.5で実行すると動きました。。。
iPhone+Facebook連携で、アプリから認証ブラウザが立ち上がったとき、
「Safari cannot open the page because the address is invalid 」
と出てきてしまいました。。。
解決法ですが、Info.plistに以下の設定が必要です。
通常(XML以外)だと、以下のように見えます。
▼URL types Array
▼Item 0 Dictionary
▼URL Schemes Array
▼Item 0 String fb1234567890
1234567890はFacebookのappIdです。先頭に「fb」が必要です。
「Safari cannot open the page because the address is invalid 」
と出てきてしまいました。。。
解決法ですが、Info.plistに以下の設定が必要です。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb1234567890</string>
</array>
</dict>
</array>
通常(XML以外)だと、以下のように見えます。
▼URL types Array
▼Item 0 Dictionary
▼URL Schemes Array
▼Item 0 String fb1234567890
1234567890はFacebookのappIdです。先頭に「fb」が必要です。