manager developer depurer debug crawler android facebook android-intent

developer - Compartir puntaje en Facebook android



image share facebook (6)

Bueno, hay 3 cosas que debes hacer:
1) Categoriza tu aplicación como Desarrolladores de juegos en Facebook
2) Usa la API de logros y la API de puntajes
3) Facebook for Developers oficialmente tiene una respuesta a tu pregunta. Por favor, consulte el enlace https://developers.facebook.com/docs/games/services/scores-achievements

[ OPCIONAL ]


Si desea estudiar sobre Compartir General desde su aplicación por los usuarios que este enlace, Facebook SharingAddit también podría ayudarlo compartiendo el contenido de su aplicación.

Quiero compartir mi puntuación del juego en Facebook. Verifiqué muchos enlaces y cada publicación dice que no es posible PUBLICAR en Facebook usando INTENTAR . Si usamos el intento, solo podemos compartir el enlace .

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

Tengo otra duda de que todas las preguntas y respuestas se publicaron antes del año 2014 . ¿Hay algo nuevo que venga después del año 2014?

Mi verdadera pregunta es, ¿es posible compartir puntaje en Facebook usando Intent o tengo que usar Facebook SDK ?

a continuación está el código de intención que utilicé para mi aplicación que no funciona ...

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 es que no muestra puntaje en la publicación. Solo se muestra la imagen del enlace , y falta el título y la descripción .

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

Usé ShareDialog porque

El cuadro de diálogo Compartir cambia a la aplicación nativa de Facebook para Android, luego devuelve el control a su aplicación después de que se publique una publicación. Si la aplicación de Facebook no está instalada, se volverá automáticamente al diálogo basado en la web.

Debajo está la salida ..........

@pravin este es el error que viene después de su uso compartido de la API

@Pravin este es mi código de tu respuesta compartida ........

@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 ................


Creo que el SDK de Facebook usa una actividad de fondo para la transferencia de datos real, pero aún necesita hacer su propia actividad, su diseño, y los ejemplos de aquí le muestran cómo crear sus propias herramientas de Compartir e Ingresar


Después de una larga búsqueda, encontré esto como 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, comparte una cuota. Si alguien obtiene otra respuesta, publique con la salida.

Salida:-

Por favor, publique chicos si obtiene la respuesta real de esta pregunta ...

Gracias por todos los usuarios que hacen su esfuerzo .......

He aprendido muchas cosas debido a tus respuestas .......

disfrutar de la codificación .........


Solo prueba el siguiente fragmento,

llama donde quieras a continuación

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 te ayude, házmelo saber para consultas.


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

Este es un fragmento simple para compartir fotos (no relacionado con su pregunta, pero creo que sabe que no puede hacerlo mediante el uso de 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); }


Scores API

Si solo quiere compartir la puntuación, puede usar la API de puntajes (lea Create or Update a Player''s Score sección Create or Update a Player''s Score ). Hay información muy poco clara y poco clara en el enlace proporcionado, por lo que el siguiente fragmento de código podría 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();

Logros API

Usa Achievements API si quieres publicar logros en tu juego y recompensa a los jugadores con puntajes por completar esos logros. Debes utilizar Open Graph Stories para publicar los logros de tu juego en Facebook. Antes de publicar historias en nombre de personas, deberá enviarlas para su revisión. Lea este enlace para obtener más información. Hay dos formas de publicar una historia de Open Graph:

  1. Usando el diálogo Compartir
  2. Usando su propia interfaz personalizada

Al usar el cuadro de diálogo compartir, voy a arrojar algo de luz sobre cómo publicar puntaje del juego usando el cuadro de diálogo Compartir.

  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 la clave de fragmento de código anterior se encuentran Propiedades del objeto y game.achievement es Tipo de objeto . Aquí hay documentación para el game:points .

  1. Luego crea una acción y vincula el objeto a la acción.

ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() .setActionType("games.achieves") .putObject("game", object) .build();

Puede encontrar diferentes ActionTypes here .

  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 ser minúsculas. Todos los nombres de propiedades requieren espacios de nombres.

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

ShareDialog.show (activityOrFragment, content);

Resumen:-

El API Scores API y Achievements facilita la creación de tablas de clasificación sociales, la persistencia de los puntajes de los jugadores y los logros de los premios a los jugadores en un formato social y multiplataforma. Con la API de puntajes, puede almacenar y restablecer el puntaje máximo de un jugador y sacar una lista de los puntajes de sus amigos para llenar una tabla de líderes. 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 puntaje que se puede obtener con cada logro.

Nota:-

Tanto la API de puntajes como la API de logros solo están disponibles para aplicaciones clasificadas como Juegos .

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

Espero que esto les brinde a usted y a otros usuarios suficiente información sobre la integración del juego con Facebook .