Compartir Puntuación en Facebook android

Quiero compartir la puntuación de mi juego en facebook. He comprobado muchos enlaces y cada post de la gente está diciendo que publicar en facebook utilizando INTENT no es posible . Si estamos utilizando la intención de lo que podemos compartir sólo enlace .

Si tenemos que compartir algo en Facebook que tenemos que usar FaceBook SDK .

Tengo otra duda de que todas las preguntas y respuestas se publicaron antes del año 2014 . Cualquier cosa nueva viene después del año 2014.

Mi pregunta real es que, ¿Es posible compartir la puntuación en Facebook con Intent o tengo que usar Facebook SDK ?

Debajo es el código de la intención que utilicé para mi uso que no está trabajando ……

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

Y debajo está el código de FacebookSDK … y el problema en esto él no está demostrando la cuenta en la imagen del acoplamiento del poste solamente está mostrando, y el título y la descripción falta.

  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); } 

Utilicé ShareDialog porque

El cuadro de diálogo Compartir cambia a la aplicación nativa de Facebook para Android y, a continuación, devuelve el control a la aplicación después de publicar una publicación. Si la aplicación de Facebook no está instalada, automáticamente volverá al cuadro de diálogo basado en la Web.

A continuación se muestra la salida ……….

salida

@pravin esto es un error que viene después de que tu uso de API de uso

O

@Pravin este es mi código de su respuesta de la parte ……..

 @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); } 

Gracias por adelantado …………….

Después de una larga búsqueda encontré esto como un trabajo para mí en mi proyecto hasta que llegue la respuesta real ……….

  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); } 

NOTA: -En este código compartió una cuota. Si alguien consigue otra respuesta ponga por favor con salida.

Salida:-

salida

Publica a los chicos si obtienes la respuesta real de esta pregunta ….

Gracias por todo el usuario que hace su esfuerzo …….

He aprendido muchas cosas debido a sus respuestas …….

Disfruta codificando

Resultados API

Si solo quieres compartir la puntuación, puedes usar la API de puntuaciones (Leer Create or Update a Player's Score sección Create or Update a Player's Score ). Hay mucha menos información y poco claro en el enlace proporcionado por lo que el fragmento de código puede funcionar para usted.

  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 de logros

Utilice la API de logros si desea publicar logros en su juego y recompense a los jugadores con puntajes para completar esos logros. Debe usar Open Graph Stories para publicar los logros de su juego en Facebook. Antes de publicar historias en nombre de las personas, tendrás que presentarlas para su revisión. Lea este enlace para obtener más información. Hay dos maneras de publicar una historia de Open Graph:

  1. Uso del cuadro de diálogo Compartir
  2. Uso de su propia interfaz personalizada

A medida que utilice el diálogo compartido, voy a arrojar algo de luz sobre cómo publicar la puntuación del juego mediante el diálogo compartido.

  1. Cree un objeto con el tipo de objeto game.achievement y establezca las propiedades en ese objeto.
 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(); 

En clave de código anterior es Propiedades de objeto y game.achievement es Tipo de objeto . Aquí está la documentación para el juego: puntos .

  1. A continuación, cree una acción y vincule el objeto a la acción.
 ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() .setActionType("games.achieves") .putObject("game", object) .build(); 

Aquí puedes encontrar diferentes ActionTypes .

  1. Finalmente, cree el modelo de contenido para representar la historia de Open Graph.
 ShareOpenGraphContent content = new ShareOpenGraphContent.Builder() .setPreviewPropertyName("game") .setAction(action) .build(); 

Todos los objetos y tipos de acciones en su código deben estar en minúsculas. Todos los nombres de propiedad requieren namespaces.

  1. Presente el cuadro de diálogo Compartir utilizando el método show en ShareDialog .

ShareDialog.show (activityOrFragment, contenido);

Resumen:-

La API de resultados y API de logros facilita la creación de tablas de clasificación sociales, la persistencia de las puntuaciones de los jugadores y la adjudicación de logros a los jugadores en un formato social y multiplataforma. Con la API de puntuaciones, puede almacenar y restablecer la puntuación alta de un jugador y retirar una lista de las puntuaciones de sus amigos para rellenar una tabla de clasificación. Con la API de logros, puede definir una lista de logros personalizados que los jugadores pueden completar en su juego, junto con un valor de puntuación que se puede obtener con cada logro.

Nota:-

Tanto la API de resultados como la API de logros sólo están disponibles para aplicaciones que se clasifican como juegos .

Debido a que estos API permiten a los desarrolladores escribir información sobre el estado de juego del reproductor en Graph API, ambos requieren permisos de publish_actions , que están sujetos a la revisión de inicio de sesión. Para recuperar la información de Puntuación y Logro de los amigos de un jugador, tanto el jugador como sus amigos deben concederle el permiso de user_friends .

Espero que esto le proporcionará a usted y otros usuarios suficiente información sobre la integración de juegos con Facebook .

Sólo prueba el siguiente fragmento,

Llame a donde quiera como abajo

 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); } 

NOTA: Asegúrese de inicializar el SDK de Facebook.

Espero que esto le ayude, hágamelo saber para las preguntas.

Creo que el SDK de Facebook utiliza una Actividad de fondo para la transferencia de datos real, pero todavía necesita realizar su propia actividad, su diseño y los ejemplos que aparecen a continuación , le mostrarán cómo crear sus propias herramientas de Acceso e intercambio

Tienes que usar Facebook SDK para hacer esto, creo que la razón principal es acerca de la seguridad.

Este es un fragmento sencillo para compartir fotos (no relacionado con tu pregunta, pero creo que sabes que no puedes hacerlo usando Intent):

 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); } 

Bueno, hay 3 cosas que usted debe hacer:
1) Categorizar tu aplicación como juegos en Facebook Desarrolladores
2) Utilice la API de resultados y la API de puntuación
3) Facebook para desarrolladores oficialmente tiene una respuesta a su pregunta. Consulte el enlace https://developers.facebook.com/docs/games/services/scores-achievements

[ OPCIONAL ]

Si quieres estudiar acerca de la distribución general de tu aplicación por parte de los usuarios de este enlace, Facebook SharingAddit también podría ayudarte en la distribución general de contenido de tu aplicación.

  • No puedes encontrar contactos de Facebook en RawContacts
  • Compilación de error en SDK "Utilizar Facebook Login"
  • Reproducción automática de video como facebook, Android
  • "Página no encontrada" cuando un usuario hace clic en una invitación de Facebook desde mi aplicación
  • Obtener amigos cumpleaños usando facebook api v2.0 gráfico
  • Android: API de Facebook para publicar
  • Fresco: Utilice la imagen actual que se muestra en Drawee como marcador de posición para la siguiente solicitud
  • Convertir Facebook JSON created_time de formato String a formato largo
  • Tecla de hash de Facebook al usar el estudio de Android
  • Android Studio - Error en el botón de inicio de sesión de Facebook
  • Cómo recuperar un Facebook-AuthToken de las cuentas guardadas en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.