通过 Android 应用在 facebook 中创建一个简单的帖子
Posted
技术标签:
【中文标题】通过 Android 应用在 facebook 中创建一个简单的帖子【英文标题】:Creating a simple post in facebook via Android app 【发布时间】:2012-11-03 11:13:41 【问题描述】:我正在尝试使用 facebook SDK 提交一个简单的发布请求。 代码如下:
public void ShareLinkOnFacebook()
Facebook mFacebook = ((GlobalVars)getApplicationContext()).facebook;
AsyncFacebookRunner mAsyncFbRunner = new AsyncFacebookRunner(mFacebook);
Bundle params = new Bundle();
params.putString("message", place.name );
params.putString("link", "http://www.facebook.com");
mAsyncFbRunner.request("me/feed", params, "POST", new RequestListener());
但是我有编译错误说RequestListener
不能被解析为一个类型。我必须做些什么才能让它发挥作用?
【问题讨论】:
你创建 RequestListener 监听器了吗? @ChiragRaval 不,我没有,我真的不知道该怎么做。 此链接为 facebook 推荐最佳 api:***.com/questions/5076691/… 【参考方案1】:请检查此监听器。
public void postOnWall(String msg)
Log.d("Tests", "Testing graph API wall post");
try
String response = mFacebook.request("me");
Bundle parameters = new Bundle();
parameters.putString("message", msg);
parameters.putString("description", "test test test");
response = mFacebook.request("me/feed", parameters,
"POST");
Log.d("Tests", "got response: " + response);
if (response == null || response.equals("") ||
response.equals("false"))
Log.v("Error", "Blank response");
catch(Exception e)
e.printStackTrace();
【讨论】:
表示BaseRequestListener无法解析为类型。【参考方案2】:试试这是我的工作代码:- 在wallpost 按钮点击:-
mPostButton.setOnClickListener(new OnClickListener()
public void onClick(View v)
mFacebook.dialog(Class.this, "feed",
new SampleDialogListener());
&
public class SampleDialogListener extends BaseDialogListener
public void onComplete(Bundle values)
final String postId = values.getString("post_id");
if (postId != null)
Log.d("Facebook-Example", "Dialog Success! post_id=" + postId);
mAsyncRunner.request(postId, new WallPostRequestListener());
mDeleteButton.setVisibility(View.VISIBLE);
else
Log.d("Facebook-Example", "No wall post made");
&BaseDialogListner:---
public abstract class BaseDialogListener implements DialogListener
public void onFacebookError(FacebookError e)
e.printStackTrace();
public void onError(DialogError e)
e.printStackTrace();
public void onCancel()
public class WallPostRequestListener extends BaseRequestListener
public void onComplete(final String response, final Object state)
Log.d("Facebook-Example", "Got response: " + response);
String message = "<empty>";
try
JSONObject json = Util.parseJson(response);
message = json.getString("message");
catch (JSONException e)
Log.w("Facebook-Example", "JSON Error in response");
catch (FacebookError e)
Log.w("Facebook-Example", "Facebook Error: " + e.getMessage());
final String text = "Your Wall Post: " + message;
VideoUpload.this.runOnUiThread(new Runnable()
public void run()
mText.setText(text);
);
& BaseRequestListner:--
public abstract class BaseRequestListener implements RequestListener
public void onFacebookError(FacebookError e, final Object state)
Log.e("Facebook", e.getMessage());
e.printStackTrace();
public void onFileNotFoundException(FileNotFoundException e,
final Object state)
Log.e("Facebook", e.getMessage());
e.printStackTrace();
public void onIOException(IOException e, final Object state)
Log.e("Facebook", e.getMessage());
e.printStackTrace();
public void onMalformedURLException(MalformedURLException e,
final Object state)
Log.e("Facebook", e.getMessage());
e.printStackTrace();
【讨论】:
感谢您的回答,我尝试通过一些代码更改来实现它以满足我的需求,但它不起作用(我没有得到任何异常)。你看到代码中的问题了吗? pastebin.com/pguxr1qa 也许如果你能给我请求本身,它会帮助我解决问题。 啊,这是一个对话,我的目标是不通过对话发布。用户只需单击某个按钮,然后从他的 Facebook 个人资料中显示一个状态。以上是关于通过 Android 应用在 facebook 中创建一个简单的帖子的主要内容,如果未能解决你的问题,请参考以下文章
通过 android 应用程序共享图像时 Facebook 上传失败错误
通过 Android 应用在 facebook 中创建一个简单的帖子
如何通过 Android 应用在 Facebook 上分享我的位置?