Hatena::ブログ(Diary)

プログラマーのアプリ開発日誌

2015-06-15

cocos2dx v3.6 facebook連携

cocos2dxとtwitterの連携に1週間かかったけど、Facebookも同じくらいかかりそうな予感。いやそれ以上かも。

やりたいことはcocos2dxからfacebookのシェア(タイムラインへの投稿)。
まずiosでの連携だけどtwitter同様SocialFrameworkを使うことにする。

ただSocialFrameworkだと簡単に実装できるけど、投稿名が「iOS」になったりするらしい。facebookSDKを使うと色々できて投稿名にもアプリ名を表示できるらしいけど、当然実装は面倒になるためiosについてはSocialFrameworkを使用する。

iosについてはtwitter連携のソースを流用すれば実装は3秒で終わる。
「composeViewControllerForServiceType」を 「SLServiceTypeFacebook」にするだけ。

問題はandroidとの連携。こっちはfacebookSDKを使わざるを得ない。
sdkのバージョンが2015/3にv3からv4にあがったぽいので最新のv4.2を使うことにする。
以下、手順

・自分のfacebookアカウントでデベロッパー登録
アプリ登録(AppIDの取得)
https://developers.facebook.com
・設定ページからAddPlatformでKeyHashを作成(作り方は公式サイト参照)

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
キーストアのパスワードを入力してください:  android

Key HashsはAndroidの著名鍵、そのため普通は開発者用のkeystoreとリリース用の本番keystoreの二つの登録が必要になる。keystoreの位置はeclipseから確認できる。
Preference>Android>BuildのDefalt debug keystoreに配置してあるので以下のコマンドをターミナルから入力し、ハッシュキーを取得する。
ハッシュキーを登録しないとログイン時に「This app has no Android key hashes configured.」というエラーがでる。
・single sign onとdeep linkingを有効にする
http://nex.fm/sso/
ssoについて
http://deep-link.jp/2014/08/what-is-deeplink/
deep linkについて

・facebookSDKをプロジェクトにimport

importの手順については、facebookの公式だとandroid studioが前提になっているけど、eclipseで開発をしているためeclipseに導入するんだけど、ビルドができずにクソはまって100サイトくらい参考にしつつ丸1日消費した。

以下、ビルドができるようになるまでの手順

http://stackoverflow.com/questions/29379890/android-facebook-sdk-4-in-eclipse
まずここのサイトに従って設定を行う。
本来gradleのインストールが必要らしいが、上記ページに従えばそれが不要になる。
以下やったこと。色んなエラーが出て色々やったため特に必要のないものも含まれているかもしれん。

No resource found that matches the given name: attr 'android:textAllCaps'

・support.v4とboltsを入れる
facebookプロジェクトのコンパイラレベルをv1.6->v1.7に変更
・それに合わせてインポート済みのfacebookプロジェクトを右クリック>プロパティAndroid>ターゲット名で、Anroid4.4以上を選択すればOK(v1.7を適用するために必須)
・cocos2dxのプロジェクトとlibcocos2dxとgooglePlayServiceの3つのコンパイラレベルをv1.6->v1.7に変更

エラー: ダイヤモンド演算子は-source 1.5でサポートされていません

http://3a3k.blogspot.jp/2012/01/antandroid.html
こちらのサイトを参考にしてbuild.xmlのコンパイラレベルを以下のように変更

build.xml
変更前

    <property name="java.target" value="1.5" />
    <property name="java.source" value="1.5" />

変更後

    <property name="java.target" value="7" />
    <property name="java.source" value="7" />


エラー: パッケージandroid.support.v4.contentは存在しません

android-support-v4.jar の追加の仕方がまずかった。facebookプロジェクトのlibs配下にjarをコピーした上で、ビルドパスに追加する必要があった。(boltsも同様)

これでようやくandroidビルドが通った。

参考サイト
https://developers.facebook.com/docs/android?locale=ja_JP
http://qiita.com/J_3woo86/items/3a7688e645a8d6e2e4ff
http://qiita.com/mechamogera/items/ca66f1385adbabc84de7
http://androidkaihatu.blog.fc2.com/blog-entry-53.html

低予算で始められるおすすめのFX口座を紹介しています。
http://s2fx.com/ranking/856.html

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元