web-dev-qa-db-fra.com

Ouverture de l'application facebook sur une page de profil spécifiée

J'essaie d'utiliser du code de SO mais cela échoue:

Ce sont des uri censés ouvrir la bonne section de l'application.

facebook://facebook.com/info?user=544410940     (id of the user. "patrick.boos" won't work)
facebook://facebook.com/wall?user=544410940   (will only show the info if you have added it as 

Ce que je veux, c'est ouvrir l'application facebook sur un profil que j'ai spécifié. C'est un code que j'essaye. Le numéro est l'UID du profil.

        String uri = "facebook://facebook.com/wall?user=417079614970109"; 
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
        startActivity(intent);

Est-ce déprécié ou quoi? Comment puis-je accomplir une telle tâche maintenant?

17
Jacek Kwiecień

En fait, ça ressemble à ça. Ces adresses URI ne fonctionnent qu'avec la version la plus récente de l'application Facebook. C'est pourquoi nous essayons d'attraper.

public static Intent getOpenFacebookIntent(Context context) {

    try {
        context.getPackageManager()
                .getPackageInfo("com.facebook.katana", 0); //Checks if FB is even installed.
        return new Intent(Intent.ACTION_VIEW,
                Uri.parse("fb://profile/254175194653125")); //Trys to make intent with FB's URI
    } catch (Exception e) {
        return new Intent(Intent.ACTION_VIEW,
                Uri.parse("https://www.facebook.com/arkverse")); //catches and opens a url to the desired page
    }
}

Dans votre activité, appelez-la comme suit:

Intent facebookIntent = getOpenFacebookIntent(this);
startActivity(facebookIntent);
51
Zaid Daghestani

N'est-ce pas plus facile? Par exemple, dans un onClickListener?

    try{ 

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/426253597411506"));
        startActivity(intent);

       }catch(Exception e){

         startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/appetizerandroid")));

      }

PS Obtenez votre identifiant (le grand nombre) de http://graph.facebook.com/[userName]

11
John

Cela ne fonctionne plus

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/someProfile"));

S'il vous plaît essayer ceci à la place

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href=https://www.facebook.com/someProfile"));
10
Tristan Richard

Pour l'instant ce n'est pas possible, Facebook a été supprimé de cette fonctionnalité

2
Jemo Mgebrishvili

Il y a tellement de questions à ce sujet, mais ce code est efficace pour moi. Facebook a changé sa politique. Pour plus de détails, consultez cette page sur FacebookGRAPH API Explorer PAGE

Intent intent = null;
    try {
        getPackageManager().getPackageInfo("com.facebook.katana", 0);
        String url = "https://www.facebook.com/"+idFacebook;
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href="+url));
    } catch (Exception e) {
        // no Facebook app, revert to browser
        String url = "https://facebook.com/"+idFacebook;
        intent = new Intent(Intent.ACTION_VIEW);
        intent .setData(Uri.parse(url));
    }
    this.startActivity(intent);
2
Shailesh

Pour ce faire, nous avons besoin de "l'identifiant de la page Facebook", vous pouvez l'obtenir:

  • de la page aller à "à propos de". 
  • allez à la section "Plus d'infos".

 introducir la descripción de la imagen aquí

Pour ouvrir l'application facebook sur la page de profil spécifiée,

tu peux le faire:

 String facebookId = "fb://page/<Facebook Page ID>";
  startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookId)));
1
Elenasys

Pour une page facebook, utilisez comme ceci: http: // fb: // page/87268309621xxxx Pour un identifiant personnel, utilisez ceci: http: // fb: // profile/87268309621xxxx

0
abir99