0

実際、問題があります。アプリケーションで Facebook にログインしました。ユーザーが承認したウォール投稿を行うこともできますが、承認を呼び出すたびに必要でした-時間がかかり、画面上に(短時間)「ボックス」が表示されますFacebookで生成(誘導)された白い背景(https://dl.dropbox.com/u/41114685/1.JPG )。というわけで気になるのは、ユーザーのウォールへの投稿が原因ではないか、毎回認証のためのメソッド (投稿を作るメソッド onComplete()) ができるかどうかです。あなたの助けを願っています。

package expir.java.file;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;

import com.facebook.android.DialogError;
import com.facebook.android.Facebook;
import com.facebook.android.Facebook.DialogListener;
import com.facebook.android.FacebookError;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;

public class FacebookAuthorizeAndPost implements DialogListener{

FacebookAuthorizeAndPost(Activity activity){
    this.activity = activity;
}

public void facebookAuthorize(){
    facebookClient = new Facebook(APP_ID);
    facebookClient.authorize(activity, new String[]{"publish_stream"}, Facebook.FORCE_DIALOG_AUTH, this);
}

public void onComplete(Bundle values) {
    if (values.isEmpty())
    {
        return;
    }
    if (!values.containsKey("post_id"))
    {
        try
        {
            Bundle cont = new Bundle();
            cont.putString("message", "bla-bla-bla");
            cont.putString("name", "Testing facebook");
            cont.putString("link", "www.????????.com");
            cont.putString("description", "This is a funny real test!!! This is a funny real test!!! This is a funny real test!!! This is a funny real test!!!");
            cont.putString("picture", "http://code.google.com/p/android-developer-scripts/logo?cct=1294556390");
            //facebookClient.dialog(activity, "feed", cont, this);
            facebookClient.request("me/feed", cont, "POST");
        }   
        catch (Exception e)
        {
            System.out.println(e.getMessage());
        }
    } 
}

public void onFacebookError(FacebookError e) {
    //
}

public void onError(DialogError e) {
    // 
}

public void onCancel() {
    // 
}

public Activity activity;   
private final String APP_ID = "??????????????????";
private Facebook facebookClient;

 }
4

2 に答える 2

0

isSessionValid()クラスのメソッドを使用Facebookして、期限切れでない有効なセッションが存在するかどうかを確認できます。存在しない場合はメソッドを呼び出しますauthorize()。そうでない場合は、ユーザーのウォールへの投稿を続行します。

こちらの投稿も参照してください: http://blog.doityourselfandroid.com/2011/02/28/30-minute-guide-integrating-facebook-android-application/

于 2012-09-26T07:55:18.167 に答える
0

数分前に別の質問にこの例を投稿しました。

こちらをご覧ください - Facebookへのログイン

于 2012-09-26T08:37:56.583 に答える