Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666

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

31.07.2013, 23:54. Показов 2324. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru