Как просто поделиться контентом на стене Facebook с помощью Android SDK?

Я не могу найти много примеров FB + Android SDK, и примеры недостаточно просты (некоторые из них устарели). Моя простая цель — поделиться некоторым контентом на FB с помощью моего приложения для Android. Когда я разрабатывал приложение для iOS, это было просто

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate facebookLogin];


NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"pikSpeak", @"name",
                               shareURL, @"link",
                               @"pikSpeak for iPhone !", @"caption",
                               @"Record audio at the moment of the image taken using pikSpeak and feel the moment come alive", @"description",
                               @"shared an audible pic using pikSpeak cam", @"message",
                               imageURL,@"picture",
                               nil];

[[appDelegate facebook] requestWithGraphPath:@"feed" andParams:params andHttpMethod:@"POST" andDelegate:self];

Этот код обрабатывает сеансы и сохраняет сведения о сеансе при перезапуске приложения.

1) Как просто поделиться чем-то в Android.

2) Я видел, что Facebook(String app_id) устарело. Если да, то чем его заменить?

P.S. : Использование SDK Facebook 3.0


person rahulg    schedule 30.03.2013    source источник
comment
Готовы ли вы использовать приложение Facebook на телефоне пользователя, чтобы поделиться этим контентом? Если да, то сделать это на Android будет гораздо проще, чем на iOS. На какие версии Android вы ориентируетесь?   -  person Stephan Branczyk    schedule 30.03.2013
comment
Заменой класса Facebook в основном является класс Session в SDK Facebook 3.0. См. это руководство: developers.facebook.com /docs/tutorials/androidsdk/3.0/   -  person Tushar    schedule 30.03.2013
comment
@StephanBranczyk Я создаю приложение для версии Gingerbread (2.3.3) и выше. Он разный для разных версий?   -  person rahulg    schedule 30.03.2013


Ответы (2)


Взято из Поделиться на стене пользователя с помощью Facebook SDK:

private void share() {
    Bundle bundle = new Bundle();
    bundle.putString("caption", "Harlem Shake Launcher for Android");
    bundle.putString("description", "Your android can do the Harlem Shake. Download it from google play");
    bundle.putString("link", "https://play.google.com/store/apps/details?id=mobi.shush.harlemlauncher");
    bundle.putString("name", "Harlem Shake Launcher");
    bundle.putString("picture", "http://shush.mobi/bla.png");
    new WebDialog.FeedDialogBuilder(mContext, mySession, bundle).build().show();
}

Если вам нужно войти в систему (добавьте это в свою деятельность везде, где вам нужно войти/поделиться):

Session.openActiveSession(this, true, new Session.StatusCallback() {

    @Override
    public void call(Session session, SessionState state, Exception exception) {
        if(session.isOpened()) {
            share();
        }
    }
});

Вам нужно будет добавить к своей деятельности:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch(requestCode) {
    default:
        if(Session.getActiveSession() != null) //I need to check if this null just to sleep peacefully at night
            Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
        break;
    }
}
person Sherif elKhatib    schedule 03.04.2013
comment
Мне нужно проверить, есть ли этот ноль, чтобы спокойно спать по ночам тогда, когда кто-то получит ошибку, вы продолжите спать. Я, избегая нулевой проверки в тех местах, где я не верю, что они должны быть, я просыпаюсь, когда у кого-то есть ошибка, и исправляю ее. Потом, когда я хорошо сплю по ночам, я точно знаю, что и все остальные тоже. - person Ilya Gazman; 26.04.2013
comment
Идеально - после множества тупиков и фальстартов в сети (вероятно, из-за старых/новых FB APK) это то, что сработало! Я не могу использовать современные классы FB Share, потому что я хочу быть совместимым с Android 2.3 и выше, поэтому мне нужно использовать FB SDK 3.17... - person Pixel; 03.02.2017

Диалоговое окно подачи используется для размещения сообщений на вашей собственной стене. Технически говоря, это не обмен. Кроме того, если вы хотите реализовать функциональность общего доступа, откройте диалоговое окно общего доступа, предоставляемое facebook sdk для Android. Диалоговое окно «Поделиться» в facebook предоставляет различные функции для отметки друзей, мест и т. д. с помощью действия OpenGraphAction.

person Kailas    schedule 12.12.2013