与Android Facebook SDK 3.0共享链接和文本

我试图升级到Facebook SDK 3.0,并终于得到了一切与Request.newStatusUpdateRequest()。 不过,我的应用程序与链接共享/张贴文本。 我已经试过/看了下面的内容:

Request.newStatusUpdateRequest() 

这似乎没有任何捆绑或任何其他方式来包括一个链接和图标的选项。

 Request.newRestRequest() 

跳过这个,因为我看到REST正在被折旧。

 new WebDialog.FeedDialogBuilder(_activity, session, params).build().show(); 

这实际上工作得很好,但由此产生的post似乎没有链接到我的Facebook应用程序,我不知道这将如何影响我的Facebook洞察力。

 Request.newPostRequest() 

从我所读到的,这个方法似乎是正确的方法。 但是,我不知道在哪里得到的GraphObject作为参数之一进入。

什么是PROPPER方式发布/分享文本,链接和图像到用户的墙上? 它似乎是Request.newPostRequest(),所以我将包括我有这个代码。

 Request request = Request.newPostRequest(session, "me/feed", ??graph_object??, new Request.Callback() { @Override public void onCompleted(Response response) { showPublishResult("message", response.getGraphObject(), response.getError()); } }); request.setParameters(params); Request.executeBatchAsync(request); 

但是什么是GraphObject呢? 我在哪里得到graph_object? 在GraphObject / OpenGraph / Graph API上从FB读取得越多,我越感到困惑。

如果我完全走错了方向,请告诉我。 如果Request.newPostRequest是这样做的方式,请给我更多关于GraphObject参数的信息。

Solutions Collecting From Web of "与Android Facebook SDK 3.0共享链接和文本"

最后设法使用以下方法来获得所需的一切:

 Bundle params = new Bundle(); params.putString("caption", "caption"); params.putString("message", "message"); params.putString("link", "link_url"); params.putString("picture", "picture_url"); Request request = new Request(Session.getActiveSession(), "me/feed", params, HttpMethod.POST); request.setCallback(new Request.Callback() { @Override public void onCompleted(Response response) { if (response.getError() == null) { // Tell the user success! } } }); request.executeAsync(); 

我用这个方法做了。 看看这可以帮助或不。

 public static void publishFeedDialog(final Activity current, final String title, final String caption, final String description, final String link, final String pictureUrl) { // start Facebook Login Session.openActiveSession(current, true, new Session.StatusCallback() { // callback when session changes state @Override public void call(Session session, SessionState state, Exception exception) { if (session.isOpened()) { Bundle params = new Bundle(); params.putString("name", title); params.putString("caption", caption); params.putString("description", description); params.putString("link", link); params.putString("picture", pictureUrl); WebDialog feedDialog = (new WebDialog.FeedDialogBuilder( current, Session.getActiveSession(), params)) .setOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(Bundle values, FacebookException error) { if (error == null) { // When the story is posted, echo the // success // and the post Id. final String postId = values .getString("post_id"); if (postId != null) { ToastHelper.MakeShortText("Posted"); } else { // User clicked the Cancel button ToastHelper .MakeShortText("Publish cancelled"); } } else if (error instanceof FacebookOperationCanceledException) { // User clicked the "x" button ToastHelper .MakeShortText("Publish cancelled"); } else { // Generic, ex: network error ToastHelper .MakeShortText("Error posting story"); } } }).build(); feedDialog.show(); } } }); 

分享页面或链接

 Bundle params = new Bundle(); params.putString("link", "link_url"); Request request = new Request(Session.getActiveSession(), "me/feed", params, HttpMethod.POST); request.setCallback(new Request.Callback() { @Override public void onCompleted(Response response) { if (response.getError() == null) { // Tell the user success! } } }); request.executeAsync(); 

欲了解更多发布参数,请参阅developer.facebook.com上的我/ feed