Открытие приложения facebook на указанной странице профиля

Я пытаюсь использовать некоторый код из SO, но он терпит неудачу:

Эти uri должны открыть правую часть приложения.

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 

Я хочу открыть приложение facebook в профиле, который я указал. Это код, который я пытаюсь сделать. Число - это UID профиля.

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

Это обесценивается или что? Как выполнить эту задачу сейчас?

Ответ 1

На самом деле это выглядит так. Эти URI работают только с последней версией приложения facebook. Вот почему мы пытаемся поймать.

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

В своей деятельности, чтобы открыть его, вызовите его так:

Intent facebookIntent = getOpenFacebookIntent(this);
startActivity(facebookIntent);

Ответ 2

Не проще ли это? Например, внутри 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. Получите свой id (большое количество) из http://graph.facebook.com/[userName]

Ответ 3

Это больше не работает

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

Попробуйте это вместо

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

Ответ 4

Пока это невозможно, Facebook была удалена эта функция

Ответ 5

Для этого нам нужен "идентификатор страницы Facebook", вы можете получить его:

  • со страницы перейдите к "О программе".
  • перейдите к разделу "Дополнительная информация".

ознакомление с описанием образа жизни

Чтобы открыть приложение facebook на указанной странице профиля,

вы можете сделать это:

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

Ответ 6

Есть так много вопросов об этом, но этот код работает для меня. Facebook изменил там политику, поэтому для более подробной информации, пожалуйста, ознакомьтесь с официальным текстом Facebook СТРАНИЦА ЭКСПЛУАТАЦИИ ПРОГРАММЫ GRAPH

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