Reputation: 1066
I am trying to integrate Facebook to my Android app for social post. I have downloaded latest Facebook sdk from here and apply all setup require to post to facebook. Now i can post to facebook. But problem is that, when i run sample program from facebook sdk, a browser like page is open and user have to enter message himself there. but i dont want this page to showed up. i want a fixed message to post directly without opening facebook dialog box. But if there is noway to avoid this, please tell me how can i fixed certain part of message so that user can't modified it. Thanks in Advance
EDIT1: this is message i got after using this project
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 : By introducing minute changes, now i can get rid of above errors. just add folder "libs" to the project and add "fbrocket-0.1a.jar" in this folder. Thank you very much everyone for spending time to help me.
Upvotes: 1
Views: 4450
Reputation: 23596
Its not possible.
You must have to login into facebook accountto post the message on Facebook.
Your requirement is only possible if you stored the facebook id and password staticaly in to the application.
Well but there is one alternate of it. If you use facebook sdk to implement the post message on Facebook then it may help you. With using that you can only able to get the facebook login screen once. If user has registered with that login id and password then it will never come again and simple send varification toast message that the message is posted on facebook.
For the above example refer this examples.
Hope it will help you. If not then let me know.
Enjoy. :)
Updated
For to post the static message on facebook, do like below after integrating the Facebook sdk in to the project:
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() {}
});
Upvotes: 2
Reputation: 3380
Try this
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();
}
}
Do follow the link
Upvotes: 1
Reputation: 1252
use FacebookRocket API http://www.androidpeople.com/android-facebook-api-example-using-fbrocket#idc-cover if u use this api facebook login page only come try this
try following code
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);
}
}
}
}
Upvotes: 2
Reputation: 4323
You can do this very easily by adding one jar file and the follow some simple steps. You must have a developer account on facebook. The complete information about your question is available on Facebook sharing of text and images on this link. See the answer given by me at there.
Upvotes: 3