Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Facebook, Авторизация - Программирование Android

31.07.2013, 23:54. Просмотров 1492. Ответов 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();
Как мне запустить этот диалог?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2013, 23:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Facebook, Авторизация (Программирование Android):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.08.2013, 00:01 #2
с фейсбук сдк в комплекте идут примеры, там есть пример для авторизации, посмотрите.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
01.08.2013, 00:07  [ТС] #3
Цитата Сообщение от 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()?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.08.2013, 00:10 #4
нет, нельзя, нужно авторизироваться как в семплах.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
01.08.2013, 00:20  [ТС] #5
А вот у меня есть код:
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);
            }
        }
 
    }
как мне его запустить, понять вообще не могу, подскажите.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2013, 00:20
Привет! Вот еще темы с ответами:

facebook SDK - не постится сообщение - Программирование Android
Всем привет! Есть проблема: как в андроиде запостить человеку на стену в фейсбуке собщение? Скачал пример кода отсюда:...

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

Получение публикаций пользователя facebook - Программирование Android
Всем привет, прошу вашей помощи, в поиске решения такой задачи: необходимо получить все публикации пользователя в facebook-е, я сделал...

Как работать с API VK / Facebook? - Программирование Android
Добрый день, хочу сделать приложение про универ, в общем разобрался как что делать но есть несколько вопросов, так как я в этом деле...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.08.2013, 00:20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru