在Facebook上分享分数

我想在Facebook上分享我的比赛分数。 我检查了很多链接,每个人都在说使用INTENT在Facebook上发布是不可能的 。如果我们使用intent比我们只能分享链接

如果我们必须在Facebook分享一些东西,那么我们必须使用FaceBook SDK 。

我还有一个疑问,所有的问题和答案都是在2014年之前发布的。 2014年之后是否有新的东西出现

我的实际问题是,是否有可能使用意图在Facebook上分享分数 ,或者我必须使用Facebook SDK

下面是我用于我的应用程序,不工作的意图代码……

Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, message); startActivity(Intent.createChooser(intent, "Share on")); 

下面是FacebookSDK代码…和它在这个问题 不显示分数 显示链接图像标题和描述丢失。

  FacebookSdk.sdkInitialize(getApplicationContext()); shareDialog = new ShareDialog(this); if (ShareDialog.canShow(ShareLinkContent.class)) { linkContent = new ShareLinkContent.Builder() .setContentTitle(title) .setContentDescription(description) .setContentUrl(Uri.parse(link)). .setImageUrl(Uri.parse(imageLink) .build(); shareDialog.show(linkContent); } 

我使用ShareDialog,因为

“共享”对话框切换到Android应用的原生Facebook,然后在发布post后将控制权返回到您的应用。 如果未安装Facebook应用程序,它将自动回退到基于Web的对话框。

以下是输出……….

产量

@pravin这是您的共享API使用后出现错误

Ø

@Pravin这是我的代码你的共享答案……..

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); setContentView(R.layout.activity_facebook); Button mShare= (Button) findViewById(R.id.share); mShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ShareOpenGraphObject object = new ShareOpenGraphObject.Builder() .putString("og:type", "game.achievement") .putString("og:title", "Name of your game") .putString("og:description", "description. You can share your score here") .putString("game:points", "445") .build(); ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() .setActionType("games.achieves") .putObject("game", object) .build(); if (ShareDialog.canShow(ShareLinkContent.class)) { ShareOpenGraphContent content = new ShareOpenGraphContent.Builder() .setPreviewPropertyName("game") .setAction(action) .build(); ShareDialog.show(Facebook.this, content); } } }); shareDialog = new ShareDialog(this); } 

感谢提前…………….

Solutions Collecting From Web of "在Facebook上分享分数"

经过漫长的search,我发现在我的项目中这是为我工作,直到实际的答案会来……….

  FacebookSdk.sdkInitialize(getApplicationContext()); shareDialog = new ShareDialog(this); if (ShareDialog.canShow(ShareLinkContent.class)) { linkContent = new ShareLinkContent.Builder() .setQuote("Hi Guys I have completed Game 30 in 19 seconds in this game") .setImageUrl(Uri.parse("https://lh3.googleusercontent.com/jUej7mN6M6iulmuwmW6Mk28PrzXgl-Ebn-MpTmkmwtOfj5f0hvnuw8j0NEzK0GuKoDE=w300-rw")) .setContentUrl(Uri.parse("https://play.google.com/store/apps/details?id=com.mobtraffiq.numbertap&hl=en")) .build(); shareDialog.show(linkContent); } 

注意:在此代码中,它共享一个配额。 如果有任何人得到其他答案,请发布输出。

输出: –

产量

请发布家伙,如果你得到这个问题的实际答案….

感谢所有努力的用户…….

由于你的回答,我学到了很多东西…….

享受编码………

评分API

如果你只是想分享分数,你可以使用分数API (阅读Create or Update a Player's Score部分)。 提供的链接中的信息非常less且不清楚,所以下面的代码片段可能适用于您。

  Bundle param = new Bundle(); param.putInt("score", 100); new GraphRequest( your_access_token, "/USER_ID/scores", param, HttpMethod.POST, new GraphRequest.Callback() { public void onCompleted(GraphResponse response) { /* handle the result */ } } ).executeAsync(); 

成就API

如果您想在游戏中发布成就并使用分数奖励玩家,请使用Achievements API来完成这些成就。您必须使用Open Graph Stories将游戏成就发布到Facebook上。 在代表人物发表报道之前,您必须提交报告以供审查。 阅读此链接以获取更多信息。有两种方法可以发布Open Graph故事:

  1. 使用共享对话框
  2. 使用您自己的自定义界面

当你使用共享对话框时,我将会抛出一些关于如何使用共享对话框发布游戏得分的信息。

  1. 用对象typesgame.achievement创build一个对象,并设置该对象的属性。
 ShareOpenGraphObject object = new ShareOpenGraphObject.Builder() .putString("og:type", "game.achievement") .putString("title", "Title of the achievement type.") .putString("og:description", "description. You can share your score here") .putInt("game:points", Points in integer) .putString("og:url", "url of achievement type") .putString("og:image", "image url") .putString("fb:app_id", "The App ID that owns this achievement type") .build(); 

在上面的代码片段键是对象属性和game.achievement是对象types 。 这里是游戏的文档:点 。

  1. 然后创build一个操作并将该对象链接到该操作。
 ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() .setActionType("games.achieves") .putObject("game", object) .build(); 

你可以在这里find不同的ActionTypes

  1. 最后,创build内容模型来表示Open Graph故事。
 ShareOpenGraphContent content = new ShareOpenGraphContent.Builder() .setPreviewPropertyName("game") .setAction(action) .build(); 

代码中的所有对象和动作types都必须是小写的。 所有属性名称都需要名称空间。

  1. 通过使用ShareDialog上的show方法ShareDialog “共享”对话框。

ShareDialog.show(activityOrFragment,content);

概要:-

Scores API和Achievements API可以轻松构build社交排行榜,坚持玩家分数,并以社交和跨平台的格式向玩家颁发成就。 使用Scores API,您可以存储和重置玩家的高分,并将其朋友的分数列表拉回到排行榜。 使用Achievements API,您可以定义玩家可以在游戏中完成的自定义成就列表,以及每个成就可以获得的分数值。

注意:-

Scores APIAchievements API仅适用于分类为游戏的应用程序。

因为这些API让开发人员能够将关于玩家游戏状态的信息写入Graph API,所以他们都需要publish_actions权限,这个权限受到Login Review的限制。 要检索玩家朋友的得分和成就信息,玩家和他们的朋友都需要授予user_friends权限。

希望这会为您和其他用户提供足够的有关游戏与Facebook集成的信息。

只要尝试下面的代码片段,

请在下面任何地方打电话

 ShareDialog shareDialog; FacebookSdk.sdkInitialize(mContext); shareDialog = new ShareDialog(mContext); shareScoreonFB("345"); // just pass your score here in string format. call this inside click listener. // GLOBAL FUNCTION TO SHARE SCORE ON FB void shareScoreonFB(String score) { ShareLinkContent linkContent = new ShareLinkContent.Builder() .setContentTitle("Your score is : "+score) .setContentDescription("Any description that you needed") .setContentUrl(Uri.parse("https://play.google.com/store/apps/details?id=com.mobtraffiq.numbertap&hl=en")).build(); shareDialog.show(linkContent); } 

注意:确保您初始化Facebook SDK。

希望这可以帮助你,让我知道的查询。

我相信Facebook SDK使用后台Activity进行实际的数据传输,但是您仍然需要在这里制作自己的活动,其布局以及示例,向您展示如何创build自己的共享和login工具

你必须使用Facebook SDK来做到这一点,我认为主要的原因是关于安全性。

这是一个简单的照片分享片段(不涉及你的问题,但我想你知道你不能通过使用意图):

 private void shareImage() { SharePhoto photo = new SharePhoto.Builder() .setBitmap(bmp) .setCaption("Simple puzzle") .build(); SharePhotoContent content = new SharePhotoContent.Builder() .addPhoto(photo) .build(); ShareApi.share(content, null); } 

那么,你应该做件事:
1)将您的应用程序分类为Facebook开发者的游戏
2)使用Achievements API和Scores API
3)面向开发者的Facebook正式回答你的问题。 请参阅链接https://developers.facebook.com/docs/games/services/scores-achievements

[ 可选的 ]

如果你想学习关于你的应用程序的一般共享比这个链接Facebook SharingAddit也可以帮助你在你的应用程序的内容的一般共享