如何自定义Facebook分享的og.type与.setActionType并控制展示内容
自定义Facebook分享的og.type与setActionType解决方案
嘿,我来帮你搞定这个Facebook分享的自定义设置问题!根据你的需求——只展示Tour名称、描述及标题“Tour:”,不显示额外动作文案——我们可以这样调整代码:
1. 关于og:type的自定义
og:type用于定义分享内容的Open Graph类型,你可以自定义符合业务场景的类型名称(建议用小写字母,符合OG规范),比如直接设为"tour"来对应你的Tour内容。如果不需要特殊的类型关联,也可以用通用的"object"类型,同样能满足展示需求。
2. 调整setActionType去掉额外动作文案
你提到用books.read会显示“正在阅读书籍”,这是因为Facebook会根据动作类型自动生成对应的文案。如果不想显示这类动作文本,我们可以改用中性的通用分享动作类型:"og.shares",这个类型只会展示分享的内容本身,不会添加额外的动作前缀。
修改后的完整代码
// 构建Open Graph对象,自定义og:type为"tour" ShareOpenGraphObject object = new ShareOpenGraphObject.Builder() .putString("og:type", "tour") .putString("og:title", "Tour: " + tour.getTitle()) // 直接把"Tour:"整合到标题里,确保展示符合预期 .putString("og:description", tour.getDescription()) .build(); // 创建分享动作,使用通用的og.shares类型避免额外动作文案 ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() .setActionType("og.shares") .putObject("tour", object) // 键名建议和og:type一致,保持语义统一 .build(); // 构建分享内容 ShareOpenGraphContent content = new ShareOpenGraphContent.Builder() .setPreviewPropertyName("tour") // 和上面putObject的键名对应,确保预览内容正确关联 .setAction(action) .build(); // 弹出分享对话框 ShareDialog.show(TourActivity.this, content);
额外说明
- 如果坚持要使用自定义动作类型(比如
"tour.post"),需要先在Facebook开发者后台的应用中配置对应的Open Graph动作和对象类型,还可以在配置时调整是否显示动作文案,但这个步骤相对繁琐。用"og.shares"是最快满足你需求的方式。 - 把
"Tour:"直接整合到og:title中,能确保分享内容的标题完全符合你的预期展示效果。
内容的提问来源于stack exchange,提问作者Himanshu
相关产品推荐
相关产品推荐

