通过 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 上分享我的位置?

通过 Android 应用向 Facebook 好友发送消息

facebook 分享

如何通过 android 中的 facebook 聊天应用程序传输图像?