我们可以在Facebook上更改链接的图像(由Android应用程序发布)

时间:2013-07-12 10:46:53

标签: android facebook facebook-android-sdk

我们可以在Facebook上更改链接的图像(由Android应用程序发布)

我通过我的应用程序在FaceBook上发布了一些链接,但我想在Facebook墙上显示其他图像

我的代码就像这样

Intent shareCaptionIntent = new Intent(Intent.ACTION_SEND);
shareCaptionIntent.setType("image/png");
shareCaptionIntent.putExtra(Intent.EXTRA_STREAM, "<URL>");
//set caption
shareCaptionIntent.putExtra(Intent.EXTRA_TEXT, "example caption");
shareCaptionIntent.putExtra(Intent.EXTRA_SUBJECT, "example caption");
startActivity(Intent.createChooser(shareCaptionIntent,getString(R.string.share)));

我也可以看到标题和说明。 如何更改图像并使描述和标题可见,请查看附件图像enter image description here

4 个答案:

答案 0 :(得分:4)

如果您只是进行共享,则您共享的链接会被Facebook抓取(解析)并抓取您要共享的目标网址上定义的元标记。

特定于您的问题:

<meta property="og:title" content="The Rock" />
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />
<meta property="og:description" content="A great movie with Sean Connery and Nicolas Cage" />

如果您有权更改这些元标记,则可以控制Facebook上显示的帖子的图像,标题和说明。

供参考,请参阅http://ogp.me/以及使用Facebook调试器http://developers.facebook.com/tools/debug来lint(解析)您正在分享的网址。

答案 1 :(得分:2)

如果您真的需要,可以使用Android Facebook SDK(更改所有已发布的内容)来完成此操作。 https://developers.facebook.com/docs/howtos/androidsdk/3.0/publish-to-feed/

PublishFeedHowTo示例演示(L:150-L:154) https://github.com/fbsamples/android-3.0-howtos/blob/master/PublishFeedHowTo/src/com/facebook/samples/publishfeedhowto/MainFragment.java

答案 2 :(得分:1)

不,您可以更改在Facebook上发布的图片的链接。 Facebook在将数据存储在数据库中时会自行生成此链接。

答案 3 :(得分:1)

        **Using this code you can share any image from your drawable folder** 





     public void share()
      {
    Session.openActiveSession(this, true, new Session.StatusCallback() {

          // callback when session changes state
          @Override
          public void call(final Session session, SessionState state, Exception   exception) {

            if (session.isOpened()) {
                if(!session.getPermissions().contains("publish_actions"))
                        {
                    session.requestNewPublishPermissions(new Session.NewPermissionsRequest(Aboutcampaign.this, PERMISSIONS));
                        }
                else
                {
                final String message="YOUR STRING MESSAGE";
              // make request to the /me API
                 /* Request request = Request
                          .newStatusUpdateRequest(Session.getActiveSession(), message, new Request.Callback() {
                              @Override
                              public void onCompleted(Response response) {
                                  showPublishResult(message, response.getGraphObject(), response.getError());
                              }
                          });
                  request.executeAsync();*/

                Bitmap image = BitmapFactory.decodeResource(Aboutcampaign.this.getResources(), R.drawable.product_btn);
                // Bitmap BckGrnd = BitmapFactory.decodeFile(file);
                 Request request = Request.newUploadPhotoRequest(Session.getActiveSession(), image, new Request.Callback() {
                     public void onCompleted(Response response) {
                         showPublishResult("Shared on Facebook", response.getGraphObject(), response.getError());

                     }
                 });
                 Bundle params = request.getParameters();
              // Add the parameters you want, the caption in this case
              params.putString("name", message);
              // Update the request parameters
              request.setParameters(params);

              // Execute the request
              Request.executeBatchAsync(request);
                // request.executeAsync();

                }
            }
          }
        });