Вопрос по android, android-intent, facebook – Открытие приложения facebook на указанной странице профиля

17

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

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

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

Это амортизируется или как? Как мне выполнить такую задачу сейчас?

возможный дубликатOpen Facebook page from Android app? rds

Ваш Ответ

7   ответов
2

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

Вы можете связать это?
10

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

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"));
Спасибо! Но как насчет того, чтобы открыть Facebook Messenger?
Открыть Facebook Messenger не имеет отношения к этому вопросу. Задайте новый
2

Есть так много вопросов по этому поводу, но этот код работает для меня. Facebook изменил там политику, поэтому для более подробной информации, пожалуйста, проверьте этот официальный 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);
51

На самом деле это выглядит так. Эти 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'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
    }
}

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

Intent facebookIntent = getOpenFacebookIntent(this);
startActivity(facebookIntent);
большое спасибо вам. Полагаю, что большая часть потоков обесценилась. Там идет мой фейсбук, как sentiapps :) Jacek Kwiecień
Как указано в ответе Джареда вstackoverflow.com/questions/4810803/… есть новый адрес для намерения открыть приложение fb в версии 11+: fb: // facewebmodal / f? href = [FACEBOOK_URL] и ввести там обычный веб-URL.
Просто, чтобы уточнить номер после профиля является идентификатор пользователя Facebook. Если у вас есть только имя пользователя, вы можете получить идентификатор из поля id изgraph.facebook.com/[userName]
Как вы называете этот метод? например getOpenFacebookIntent (??) - что там с контекстом?
Вы также должны добавитьintent.setPackage("com.facebook.katana"); это делает активность на Facebook более быстрой!
11

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

принятый ответ не запустит действие, поэтому onResume не будет вызываться в случае сбоя
Большое спасибо за подсказку
1

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

  • from the page go to "About".
  • go to "More Info" section.

introducir la descripción de la imagen aquí

To opening facebook app on specified profile page,

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

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

Для страницы Facebook используйте это:Http: // фб: // страница / 87268309621xxxx Для личного идентификатора используйте вот так:Http: // фб: // Профиль / 87268309621xxxx

Похожие вопросы