Facebook SDK 4.x Android Publicar como página de Facebook

Ok, ya he descubierto este ya, pero quería ponerlo por ahí en caso de que alguien más se está ejecutando en los problemas. Básicamente, lo que tenía que hacer era publicar como página de usuario de Facebook (es decir, yo soy John Doe y soy un administrador de la página Rum Ham, quiero publicar en la página Rum Ham).

Así que, básicamente, la respuesta se ve así

Primero, necesitas registrar al usuario con esta línea

LoginManager.getInstance().logInWithPublishPermissions(this, Arrays.asList("publish_actions", "manage_pages", "publish_pages")); 

A continuación, debe obtener el token de acceso de la página que desea publicar en

  Bundle params = new Bundle(); //ok so access token here is "app_ID|app_secret" params.putString("access_token", accessToken); params.putString("fields", "id"); GraphRequest request = new GraphRequest(null, "me", params, HttpMethod.GET, new GraphRequest.Callback() { public void onCompleted(GraphResponse response) { FacebookRequestError error = response.getError(); if (error != null) { Log.e("Error", error.getErrorMessage()); } else { JSONObject values = response.getJSONObject(); try { //so I have to get the user ID first String id = values.getString("id"); Bundle p = new Bundle(); p.putString("access_token", accessToken); //yay nest the graph requests //once we get the id we can get their pages GraphRequest pagesRequest = new GraphRequest(null, "/" + id + "/accounts", p, HttpMethod.GET, new GraphRequest.Callback() { public void onCompleted(GraphResponse response) { FacebookRequestError error = response.getError(); if (error != null) { Log.e("Error", error.getErrorMessage()); } else { //ok so here, we're getting the pages back in a few JSON wrappers JSONObject values = response.getJSONObject(); JSONArray array = null; try { array = values.getJSONArray("data"); //ok, so here we're just iterating through the pages a user has, obviously you can handle this accordingly.. for (int i = 0; i < array.length(); i++) { //ok, here's how to actually get the token String access_token = array.getJSONObject(i).getString("access_token") } } catch (JSONException e) { e.printStackTrace(); } } } }); GraphRequest.executeAndWait(pagesRequest); } catch (Exception e) { e.printStackTrace(); } } } }); GraphRequest.executeAndWait(request); } 

Ok, así que una vez que tengamos la página de token de acceso, aquí es donde entra en juego el real kery que Facebook se niega a contarle en sus páginas de referencia. Por lo tanto, olvídese de cualquier cosa que haya leído sobre la necesidad de enviar su aplicación para su revisión con ellos. Todo lo que tenía que hacer era crear un nuevo token de acceso así.

 //create a new access token, facebook refers to this as a page access token AccessToken token = new AccessToken("page_access_token", AccessToken.getCurrentAccessToken().getUserId(), Arrays.asList("publish_actions", "manage_pages", "publish_pages"), null, AccessTokenSource.FACEBOOK_APPLICATION_SERVICE, AccessToken.getCurrentAccessToken().getExpires(), AccessToken.getCurrentAccessToken().getLastRefresh()); //then we simply update our current access token AccessToken.setCurrentAccessToken(token); 

Ahora, todavía no hemos terminado. Finalmente, necesitamos hacer la llamada a la API para crear la publicación:

  Bundle params = new Bundle(); params.putString("message", "Contents of message"); //here, token is our newly created AccessToken object GraphRequest request = new GraphRequest(token, "/pageid/feed", params, HttpMethod.POST, new GraphRequest.Callback() { public void onCompleted(GraphResponse response) { FacebookRequestError error = response.getError(); if (error != null) { Log.e("Error", error.getErrorMessage()); } else { //do your own processing here for success } } }); GraphRequest.executeAndWait(request); } } 

Y eso es más o menos. Espero que esto ayude a alguien!

  • Cómo hacer que PagerAdapter cargue todas las páginas
  • Enviar bytes de Raspberry Pi (usando python) a una aplicación java android sobre bluetooth
  • Android - El tono no dejará de tocar
  • Java - Crear referencia a dos modelos en un adaptador personalizado
  • No se puede mostrar el hash correcto en Java. ¿Qué está mal?
  • Ejecutar Android App dos veces para trabajar, ¿por qué?
  • Error en la instrumentación Android: error de aserción
  • Cómo obtener un servicio "enlazado" de Android para sobrevivir a un reinicio de la configuración
  • Cómo utilizar la interfaz para comunicarse entre dos actividades
  • La generación de grados falla para la excepción de host desconocido
  • Android Actualiza ListActivity desde BaseAdapter
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.