Ho usato l'ID app di test e accesso da utente test creato all'app dash_board su facebook sito di sviluppo, richiede il permesso pulish_actions quando accedi utilizzando il pulsante di accesso widget di facebook sdk ma il risultato è sempre postid = null. Qui è il mio codice:Finestra di dialogo facebook di post ID restituisce sempre null in Android
....
shareDialog = new ShareDialog(MainActivity.this);
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
if (result.getPostId() != null)
Log.e(TAG, result.getPostId());
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
});
pulishButton.setOnClickListener(this);
try{
loginButton.setPublishPermissions(new String[]{"publish_actions","publish_stream"});
}catch (FacebookException e){
e.printStackTrace();
}
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.e(TAG, "success");
loginButton.setEnabled(false);
pulishButton.setEnabled(true);
GraphRequest.newMeRequest(
loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject json, GraphResponse response) {
if (response.getError() != null) {
// handle error
System.out.println("ERROR");
} else {
System.out.println("Success");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}).executeAsync();
}
@Override
public void onCancel() {
Log.e(TAG, "On cancel");
}
@Override
public void onError(FacebookException e) {
Log.d(TAG, e.toString());
}
});
faccio seguire il vostro aiuto, ma ancora problemi, qui è perrmission di Facebook User: 09-09 13:54: 35.295 12360-12360/com.dtsgroup.facebookdemo E/MainFragment: user_posts 09-09 13: 54: 35.295 12360-12360/com.dtsgroup.facebookdemo E/MainFragment: public_profile 09-09 13: 54: 35.295 12360-12360 /com.dtsgroup.facebookdemo E/MainFragment: user_status 09-09 13: 54: 35.295 12360-12360/com.dtsgroup.faceboo kdemo E/MainFragment: publish_actions ShareResult restituisce ancora postid = null –
si prega di controllare questo https://developers.facebook.com/docs/facebook-login/review/what-is-login-review, per qualsiasi permesso diverso da questi "public_profile, user_friends e email". devi inviare la tua app per la revisione di facebook. Se non vuoi inviare ora, puoi creare un utente di prova nella console per sviluppatori di Facebook e provare a effettuare l'accesso. Assicurati anche che tutti i dettagli sulla tua app nella console di sviluppo di Facebook siano corretti. – Pratik
Sì, l'ho verificato con l'ID applicazione di test e l'utente di test. L'ho menzionato sulla mia domanda. Penso di aver trovato una soluzione, il problema è il dialogo di condivisione. Ho appena testato lo stato del post al feed dell'utente tramite API grafico, posso ottenere il postid. Ma non so perché la classe Sharer.Result abbia il metodo getPostId perché la mia app ha tutte le autorizzazioni necessarie per ottenere postID e non riesco a ottenerlo :( –