繁体   English   中英

Android Facebook分享未在Facebook墙上显示描述

[英]Android Facebook Share not showing description on facebook wall

当我的应用尝试共享内容时,描述会显示在共享活动中,但发布时不会显示。 我经历了很多stackoverflow帖子,但是没有什么可以解决我的问题。

这是我的电话流程:

  1. 点击共享按钮
  2. Activity调用静态方法,并将其自身和内容传递给Bundle并与之共享
  3. 从此静态方法调用共享活动。 它显示内容以与所有图像,标题和说明正确共享
  4. 内容共享成功
  5. 选中facebook帖子后,它仅显示playstore应用程序的详细信息,以及我在3中设置的图像,没有说明

这是我使用的代码

if (FacebookDialog.canPresentShareDialog(activity.getApplicationContext(), 
     FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) 
    {
     FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(activity)
           .setLink("<playstore link>")
           .setApplicationName("<appname>")
           .setName("<some name>")
           .setCaption("<some text>")
           .setDescription("a description")
           .setPicture("http://url/to/image.jpg")
           .build();
        uiHelper.trackPendingDialogCall(shareDialog.present());
    }

但是使用FeedDialog分享相同的作品

Bundle params = new Bundle();
                    params.putString("name", "name");
                    params.putString("caption", "caption");
                    params.putString("description","desc");
                    params.putString("link", "playstore link");
                    params.putString("picture", "http://url/to/image.jpg");

                    WebDialog feedDialog = (
                        new WebDialog.FeedDialogBuilder(activity,
                                session,
                            params))
                        .setOnCompleteListener(new OnCompleteListener() {

                            @Override
                            public void onComplete(Bundle values,
                                FacebookException error) {
                                if (error == null) {

                                    final String postId = values.getString("post_id");
                                    if (postId != null) {
                                        Toast.makeText(activity,

                                            "Posted Successfully!",
                                            Toast.LENGTH_SHORT).show();
                                        activity.finish();
                                    } else {
                                        // User clicked the Cancel button
                                        Toast.makeText(activity.getApplicationContext(), 
                                            "Publish cancelled", 
                                            Toast.LENGTH_SHORT).show();

                                        activity.finish();
                                    }
                                } else if (error instanceof FacebookOperationCanceledException) {
                                    // User clicked the "x" button
                                    Toast.makeText(activity.getApplicationContext(), 
                                        "Publish cancelled", 
                                        Toast.LENGTH_SHORT).show();
                                    activity.finish();
                                } else {

                                    Toast.makeText(activity.getApplicationContext(), 
                                        "An Error Occurred", 
                                        Toast.LENGTH_SHORT).show();
                                    activity.finish();
                                }


                            }



                        })
                        .build();
                    feedDialog.show();

谢谢

来自文档 (版本4.0及更高版本)

要显示活动中链接的ShareDialog,请在onCreate方法中创建一个ShareDialog实例:

 public class MainActivity extends FragmentActivity { CallbackManager callbackManager; ShareDialog shareDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); shareDialog = new ShareDialog(this); // this part is optional shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... }); } 

然后显示ShareDialog:

 if (ShareDialog.canShow(ShareLinkContent.class)) { ShareLinkContent linkContent = new ShareLinkContent.Builder() .setContentTitle("Hello Facebook") .setContentDescription( "The 'Hello Facebook' sample showcases simple Facebook integration") .setContentUrl(Uri.parse("http://developers.facebook.com/android")) .build(); shareDialog.show(linkContent); } 

Slartibartfast的Answer可以正常工作,直到compile 'com.facebook.android:facebook-android-sdk:4.24.0'

从Facebook SDK版本4.25.0

setContentTitle("") setContentDescription("")被描述。 您必须使用setQuote(""); 方法,而不是setContentDescription("");

有关折旧的更多详细信息,请参见: https : //developers.facebook.com/docs/sharing/android

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM