7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666

Facebook, Авторизация

31.07.2013, 23:54. Показов 2348. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При работе с Facebook при вызове диалога для постинга сообщения на стене друга Session.getActiveSession() возвращает null и диалог не появляется.

Java
1
2
3
4
  WebDialog feedDialog = (
            new WebDialog.FeedDialogBuilder(this,
                Session.getActiveSession(), params))
            .setOnCompleteListener(new OnCompleteListener() {

авторизацию прохожу:
Java
1
facebook.authorize(this, new String[] { "email", "publish_stream" }, Facebook.FORCE_DIALOG_AUTH, new DialogListener() {
получаю:

Java
1
2
String tok = facebook.getAccessToken();
long expir  = facebook.getAccessExpires();
Как мне запустить этот диалог?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2013, 23:54
Ответы с готовыми решениями:

Facebook leaderboards
Здравствуйте я новичок и у меня возникла проблема.написал игру залил на гугл плей а теперь хотел бы реализовать такую функцию как...

Android Facebook
я пытаюсь войти в Facebook и пост к стене с одним нажатием кнопки .. я написал код и приложение может войти и разместить к стене, но у меня...

Шаринг Facebook
Привет. Помогите с шарингом Facebook. Как сделать авторизацию. Где должен быть app id?

4
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.08.2013, 00:01
с фейсбук сдк в комплекте идут примеры, там есть пример для авторизации, посмотрите.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
01.08.2013, 00:07  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
с фейсбук сдк в комплекте идут примеры, там есть пример для авторизации, посмотрите.
я авторизацию прохожу всё окей, но я авторизируюсь вот так:
Java
1
facebook.authorize(this, new String[] { "email", "publish_stream" }, Facebook.FORCE_DIALOG_AUTH, new DialogListener() {
это я так понимаю по старой системе. но оно всё работает. А вот диалог:
Java
1
2
3
4
WebDialog feedDialog = (
            new WebDialog.FeedDialogBuilder(this,
                Session.getActiveSession(), params))
            .setOnCompleteListener(new OnCompleteListener() {
запустить не удается, может можно что-то использовать вместо Session.getActiveSession()?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.08.2013, 00:10
нет, нельзя, нужно авторизироваться как в семплах.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
01.08.2013, 00:20  [ТС]
А вот у меня есть код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import  android.content.Intent;
    import  android.os.Bundle;
    import  android.support.v4.app.Fragment;
    import  android.util.Log;
    import  android.view.LayoutInflater;
    import  android.view.View;
    import  android.view.ViewGroup;
    import  android.widget.Button;
    import  android.widget.Toast;
 
   import  com.facebook.FacebookException;
    import  com.facebook.FacebookOperationCanceledException;
    import  com.facebook.Session;
    import  com.facebook.SessionState;
    import  com.facebook.UiLifecycleHelper;
    import  com.facebook.widget.LoginButton;
    import  com.facebook.widget.WebDialog;
   import  com.facebook.widget.WebDialog.OnCompleteListener;
 
    public class MainFragment extends Fragment {
 
        private static final String TAG = "MainFragment";
 
       private UiLifecycleHelper uiHelper;
        private Session.StatusCallback callback = new Session.StatusCallback() {
            @Override
            public void call(final Session session, final SessionState state,
                   final Exception exception) {
              onSessionStateChange(session, state, exception);
           }
      };
 
      private Button publishButton;
 
        @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.main_fragment, container, false);
 
           LoginButton authButton = (LoginButton) view
                   .findViewById(R.id.authButton);
           authButton.setFragment(this );
 
           publishButton = (Button) view.findViewById(R.id.publishButton);
          publishButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   publishFeedDialog();
               }
            });
 
            return view;
        }
 
       @Override
       public void onCreate(Bundle savedInstanceState) {
            super .onCreate(savedInstanceState);
           uiHelper = new UiLifecycleHelper(getActivity(), callback);
            uiHelper.onCreate(savedInstanceState);
        }
 
       @Override
       public void onResume() {
           super .onResume();
 
            // For scenarios where the main activity is launched and user
           // session is not null, the session state change notification
            // may not be triggered. Trigger it if it's open/closed.
            Session session = Session.getActiveSession();
            if (session != null && (session.isOpened() || session.isClosed())) {
                onSessionStateChange(session, session.getState(), null);
            }
 
            uiHelper.onResume();
        }
 
        @Override
       public void onActivityResult(int requestCode, int resultCode,
                Intent data) {
            super .onActivityResult(requestCode, resultCode, data);
           uiHelper.onActivityResult(requestCode, resultCode, data);
       }
 
        @Override
        public void onPause() {
            super .onPause();
           uiHelper.onPause();
       }
 
        @Override
        public void onDestroy() {
           super .onDestroy();
            uiHelper.onDestroy();
       }
 
       @Override
        public void onSaveInstanceState(Bundle outState) {
            super .onSaveInstanceState(outState);
            uiHelper.onSaveInstanceState(outState);
        }
 
        private void publishFeedDialog() {
            Bundle params = new Bundle();
            params.putString("name", "Facebook SDK for Android");
           params.putString("caption",
                    "Build great social apps and get more installs.");
            params.putString(
                   "description",
                    "The Facebook SDK for Android makes it easier and faster to develop Facebook integrated Android apps.");
           params.putString("link", "https://developers.facebook.com/android");
           params.putString("picture",
                    "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png");
 
            // Invoke the dialog
           WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(
                    getActivity(), Session.getActiveSession(), params))
                    .setOnCompleteListener(new OnCompleteListener() {
 
                      @Override
                        public void onComplete(Bundle values,
                                FacebookException error) {
                           if (error == null) {
                                // When the story is posted, echo the success
                                // and the post Id.
                              final String postId = values
                                      .getString("post_id");
                               if (postId != null) {
                                    Toast.makeText(getActivity(),
                                            "Posted story, id: " + postId,
                                           Toast.LENGTH_SHORT).show();
                                } else {
                                    // User clicked the Cancel button
                                    Toast.makeText(
                                            getActivity()
                                                    .getApplicationContext(),
                                            "Publish cancelled",
                                            Toast.LENGTH_SHORT).show();
                                }
                            } else if (error instanceof  FacebookOperationCanceledException) {
                               // User clicked the "x" button
                                Toast.makeText(
                                        getActivity().getApplicationContext(),
                                        "Publish cancelled", Toast.LENGTH_SHORT)
                                        .show();
                            } else {
                                // Generic, ex: network error
                                Toast.makeText(
                                        getActivity().getApplicationContext(),
                                        "Error posting story",
                                        Toast.LENGTH_SHORT).show();
                            }
                        }
 
                    }).build();
            feedDialog.show();
        }
 
        private void onSessionStateChange(Session session, SessionState state,
                Exception exception) {
            if (state.isOpened()) {
                Log.i(TAG, "Logged in...");
                publishButton.setVisibility(View.VISIBLE);
            } else if (state.isClosed()) {
                Log.i(TAG, "Logged out...");
                publishButton.setVisibility(View.INVISIBLE);
            }
        }
 
    }
как мне его запустить, понять вообще не могу, подскажите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.08.2013, 00:20
Помогаю со студенческими работами здесь

Facebook Поделиться к стене
я пытаюсь войти в Facebook и пост к стене с одним нажатием кнопки .. я написал код и приложение может войти и разместить к стене, но у меня...

Facebook и разные пользователи
Подскажите пожалуйста в чём может быть проблема. Использую Facebook sdk, прохожу ауентификацию через диалог. Всё входит отлично получаю...

FaceBook в Adroid app
Здравствуйте. Почему у меня в Eclipse перечеркнутые процедуры для работы с FaceBookSDK? Я так понимаю эти методы устарели?. А...

FaceBook LogIn не возвращает Email
Всем привет! Учусь работать с LogIn в различных сервисах, и с FaceBook возникла такая проблема, все работает, возвращает имя и ID, но не...

Получить e-mail пользователя facebook
Подскажите как можно получить e-mail пользователя facebook? Пытаюсь получить так: String email =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru