1

ソーシャル投稿用に Facebook を Android アプリに統合しようとしています。ここから最新の Facebook SDK をダウンロードし、Facebookに投稿するために必要なすべてのセットアップを適用します。facebookに投稿できるようになりました。しかし、問題は、Facebook SDK からサンプル プログラムを実行すると、ブラウザのようなページが開いて、ユーザーが自分でメッセージを入力する必要があることです。しかし、私はこのページを表示したくありません。Facebookのダイアログボックスを開かずに定型メッセージを直接投稿したい。しかし、これを回避する方法がない場合は、ユーザーが変更できないようにメッセージの特定の部分を修正する方法を教えてください。前もって感謝します

EDIT1:これは、このプロジェクトを使用した後に得たメッセージです

04-10 11:44:34.691: I/dalvikvm(719): Failed resolving Lnet/xeomax/TestRocket/TestRocket; 

>interface 22 'Lnet/xeomax/FBRocket/LoginListener;'

>04-10 11:44:34.691: W/dalvikvm(719): Link of class 'Lnet/xeomax/TestRocket/TestRocket;' failed

>04-10 11:44:34.691: D/AndroidRuntime(719): Shutting down VM

>04-10 11:44:34.701: W/dalvikvm(719): threadid=1: thread exiting with uncaught exception (group=0x40015560)

>04-10 11:44:34.781: E/AndroidRuntime(719): FATAL EXCEPTION: main

>04-10 11:44:34.781: E/AndroidRuntime(719): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{net.xeomax.TestRocket/net.xeomax.TestRocket.TestRocket}: java.lang.ClassNotFoundException: net.xeomax.TestRocket.TestRocket in loader dalvik.system.PathClassLoader[/data/app/net.xeomax.TestRocket-1.apk]

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.os.Handler.dispatchMessage(Handler.java:99)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.os.Looper.loop(Looper.java:130)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.app.ActivityThread.main(ActivityThread.java:3683)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at java.lang.reflect.Method.invokeNative(Native Method)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at java.lang.reflect.Method.invoke(Method.java:507)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at dalvik.system.NativeStart.main(Native Method)

>04-10 11:44:34.781: E/AndroidRuntime(719): Caused by: java.lang.ClassNotFoundException: net.xeomax.TestRocket.TestRocket in loader dalvik.system.PathClassLoader[/data/app/net.xeomax.TestRocket-1.apk]

>04-10 11:44:34.781: E/AndroidRuntime(719):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)

>04-10 11:44:34.781: E/AndroidRuntime(719):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)

>04-10 11:44:34.781: E/AndroidRuntime(719):     ... 11 more

EDIT 2:細かい変更を導入することで、上記のエラーを取り除くことができます。プロジェクトにフォルダー「libs」を追加し、このフォルダーに「fbroket-0.1a.jar」を追加するだけです。私のために時間を割いてくださった皆様、本当にありがとうございました。

4

4 に答える 4

3

これは、jarファイルを1つ追加し、いくつかの簡単な手順に従うことで非常に簡単に実行できます。Facebookに開発者アカウントが必要です。あなたの質問に関する完全な情報は 、このリンクのテキストと画像のFacebook共有で入手できます。そこに私が与えた答えを見てください。

于 2012-04-10T04:07:29.373 に答える
2

不可能です。

Facebookにメッセージを投稿するには、Facebookアカウントにログインする必要があります。

要件は、FacebookIDとパスワードをアプリケーションに静的に保存した場合にのみ可能です。

ええと、しかしそれの1つの代替があります。Facebook sdkを使用してFacebookに投稿メッセージを実装すると、役立つ場合があります。それを使用すると、Facebookのログイン画面を1回しか取得できません。ユーザーがそのログインIDとパスワードで登録している場合、それは二度と来ることはなく、メッセージがFacebookに投稿されているという単純なバリエーショントーストメッセージを送信します。

上記の例については、この例を参照してください。

  1. 例1
  2. 例2
  3. デモの例
  4. 例4

それがあなたを助けることを願っています。そうでない場合は、私に知らせてください。

楽しみ。:)

更新しました

Facebookに静的メッセージを投稿するには、Facebook SDKをプロジェクトに統合した後、次のようにします。

System.out.println("Message is: "+postMessage); // My static post message

                        facebook.authorize(MainActivityPage.this, new String[]{ "user_photos,publish_checkins,publish_actions,publish_stream"},new DialogListener() {                     
                            @Override                     
                            public void onComplete(Bundle values) {   

                                Bundle params = new Bundle();              
                                params.putString(Facebook.TOKEN, facebook.getAccessToken());              
                                params.putString("message", postMessage);               

                                AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);              
                                mAsyncRunner.request("me/feed", params, "POST", new SampleUploadListener(),null);

                                Toast.makeText(getApplicationContext(), "Message Posted on Facebook.", Toast.LENGTH_SHORT).show();
                            }                      
                            @Override                     
                            public void onFacebookError(FacebookError error) {}                      
                            @Override                     
                            public void onError(DialogError e) {}                      
                            @Override                     
                            public void onCancel() {}                 
                        });
于 2012-04-10T04:38:49.767 に答える
2

FacebookRocket API http://www.androidpeople.com/android-facebook-api-example-using-fbrocket#idc-coverを使用してください。

次のコードを試してください

     import net.xeomax.FBRocket.FBRocket;
     import net.xeomax.FBRocket.Facebook;
     import net.xeomax.FBRocket.LoginListener;
     import net.xeomax.FBRocket.ServerErrorException;
     import android.app.Activity;
     import android.os.Bundle;



    public class Fbook extends Activity implements LoginListener {

private FBRocket fbRocket;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    shareFacebook();
}

public void shareFacebook() {
    fbRocket = new FBRocket(this, "PitchFork TRY",
            "xxxxxxxxxxxxxxxxxxxx");

    if (fbRocket.existsSavedFacebook()) {
        fbRocket.loadFacebook();
    } else {
        fbRocket.login(R.layout.searchlist_view);
    }
}




public void onLoginFail() {
    fbRocket.displayToast("FaceBook Login failed!");
    fbRocket.login(R.layout.searchlist_view);
}

public void onLoginSuccess(Facebook facebook) {

    fbRocket.displayToast("FaceBook Login success!");
    try {
    final BaseApplication mlisturl = (BaseApplication)   getApplication();
        facebook.setStatus("posting ur custom status :::::::::::::::"
                +"data");
        fbRocket.displayDialog("Status Posted Successfully!! "
                + facebook.getStatus());
    } catch (ServerErrorException e) {
        if (e.notLoggedIn()) {
            fbRocket.login(R.layout.searchlist_view);
        } else {
            System.out.println(e);
        }
    }
}

}

于 2012-04-10T04:04:54.470 に答える
1

これを試して

public void postMessageOnWall(String msg) {
    if (facebook.isSessionValid()) {
        Bundle parameters = new Bundle();
        parameters.putString("message", msg);
        try {
            String response = facebook.request("me/feed", parameters,"POST");
            System.out.println(response);
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        login();
    }
}

リンクをたどってください

于 2012-04-10T05:09:10.253 に答える