Разрешение для Facebook SDK

После этого я нажимаю кнопку «Войти в Facebook» и вхожу, происходит сбой. Проблема заключается в разрешении некоторых вещей, которые мне нужны для моего приложения.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_social_login, container,
            false);
    LoginButton authButton = (LoginButton) view
            .findViewById(R.id.authButton);
    authButton.setFragment(this);
    authButton.setReadPermissions(Arrays.asList("name", "user_birthday",
            "friends_birthday"));

Когда я прокомментирую эту строку, все будет работать хорошо.

authButton.setReadPermissions(Arrays.asList("имя", "user_birthday", "friends_birthday"));

Но когда я удаляю комментарий, я получаю эту ошибку.

11–18 13:16:03.983: D/FacebookSDK.WebDialog(2362): URL-адрес перенаправления: fbconnect://success?error_code=100&error_message=Invalid+Scope%3A+name&e2e=%7B%22init%22%3A1384798557797%7D

Кто-то знает эту ошибку? Недопустимая область действия и имя, что-то связанное с Graph API?

Спасибо.


person DMT82    schedule 18.11.2013    source источник


Ответы (1)


Когда вы открываете свое приложение для редактирования настроек на сайте разработчиков Facebook, появляется боковая панель с разрешениями. Просто введите те, которые вам нужны, в расширенных разрешениях. Я знаю, что это скорее обходной путь, но это лучший вариант с минимальным кодом, который вы предоставили.

вот пример

// set permission list
          authButton.setReadPermissions(Arrays.asList("basic_info","email"));
          // session state call back event
          authButton.setSessionStatusCallback(new Session.StatusCallback() {

           @SuppressWarnings("deprecation")
        @Override
           public void call(Session session, SessionState state, Exception exception) {

            if (session.isOpened()) {
                      Log.i(TAG,"Access Token"+ session.getAccessToken());
                      Request.executeMeRequestAsync(session,
                              new Request.GraphUserCallback() {
                                  @Override
                                  public void onCompleted(GraphUser user,Response response) {
                                      if (user != null) { 
                                       Log.i(TAG,"User ID "+ user.getId());
                                       Log.i(TAG,"Email "+ user.asMap().get("email"));
                                       Log.i(TAG,"Name "+ user.asMap().get("name"));
                                       uName = user.asMap().get("name").toString();
                                       savePreferences();
                                       restorePreferences();

                                                                                      }
                                  }
                              });
                  }

           }
          });
person hoss24    schedule 18.11.2013
comment
Большое спасибо за это. Нашел, вставил user_birthday и friends_birthday :-) Но не нашел имя, полное имя, имя или фамилию. - person DMT82; 18.11.2013
comment
я считаю, что он должен работать только с именем - person hoss24; 18.11.2013
comment
я включил пример - person hoss24; 18.11.2013
comment
Еще раз спасибо, буду смотреть ваш пример. И нет, в расширенном разрешении нет имени.. Странно.. пора гуглить :) - person DMT82; 18.11.2013