emu雑記

C#erな人が書いているブログです。最近、javaを始めました。なんかいろいろやってます。

Facebook SDK 3.5.2 でログイン画面まで

完全にやられました。

この単純な画像を出すまで、一週間。

f:id:emu717171:20131111030013j:plain

 

Eclipseandroidの開発環境を作成して、下のスタートアップページを見ながら、順番に手順を追っていく。

Android用Facebook SDKスタートガイド - Facebook開発者

Chapter1~Chapter5までは、余裕なんですよ。

OpenSSLがインストールされてなかったり、パスが通ってなくてキーハッシュを取れなかったのが少しはまったくらい。

フルパスの記述はこちら。(初期インストールパス TREは1.7.0_45です。)

"C:\Program Files\Java\jdk1.7.0_45\bin\keytool" -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | c:\openssl\bin\openssl sha1 -binary | c:\openssl\bin\openssl base64

キーハッシュが取れたら、こんな感じでアプリを登録。

f:id:emu717171:20131111031833p:plain

問題はChapter6から。

ここで大きな問題が発生。 

サンプルソースを書いてみると、何か様子がおかしい。

f:id:emu717171:20131111032108j:plain

「使用すべきじゃありません」って、あんたの指示で書いてるんだって話ですよ。

あきらかに、Visual Studioでいうところの、

[Obsolete("使用すべきではありません")]ってやつですよね。

 

javaでは、@Deprecatedをつけるんですね。初めて知りました。

@Deprecated 
public static RequestAsyncTask executeMeRequestAsync(Session session, GraphUserCallback callback) {
    return newMeRequest(session, callback).executeAsync();
}

 

さて。中身は同じっぽいので、そのまま続行します。

  • strings.xmlに以下の要素を追加します。
    <resources>
        <string name="app_id">【取得したApp ID】</string>
    </resources>
  • AndroidManifest.xmlに以下の要素を追加します。
    <manifest>
        <uses-permission android:name="android.permission.INTERNET" />
        <application>
            <activity android:name="com.facebook.LoginActivity" />
            <meta-data
                        android:name="com.facebook.sdk.ApplicationId"
                        android:value="@string/app_id" />
        </application>
    </manifest>

これで、準備は万端!いざ!!

f:id:emu717171:20131111033149j:plain

起動に時間がかかります。

f:id:emu717171:20131111033253j:plain

 

え?「使用しないでください」って書いてるだけじゃなくて、実行時エラーなの??

とか、ずっと悩んでました。

1週間くらい本気で悩んでたんですが、これは、ビルドパスの設定が漏れていたためでした。

  1. 【ライブラリー(&L)】タブの【Jar 追加(&J)…】ボタンをクリックして、参照している[Facebook SDK] - [libs] - [android-support-v4.jar]を追加します。
    f:id:emu717171:20131111033740j:plain
  2. 【順序およびエクスポート(&O)】タブで、追加した [android-support-v4.jar]を一番上に移動して、かつ、チェックを付けます。

    f:id:emu717171:20131111034111j:plain

  3. ビルドすると、無事にandroidアプリ起動時にFacebookのログイン画面が表示されました!

    f:id:emu717171:20131111034144j:plain

まだまだ、慣れていない(というか、javaandroidもこれが初めて)んで、こういうくだらない設定ミスではまってます。

2013/10/30に、Facebook SDK 3.5.2が出たみたいで参考サイトもなくて苦労しました。

やっと、前にすすめるよー。