Реализация протокола FBSessionDelegate в xcode - PullRequest
2 голосов
/ 16 марта 2011

Я пытаюсь подключить Facebook с помощью приложения, созданного для устройств iOS. Я выполнил все указания для их ввода, и SDK работает, но я получаю одно предупреждение. Это говорит, что я не реализую протокол FBSessionDelegate. Во время отладки в симуляторе я вхожу в сафари, чтобы войти в FB вместо того, чтобы делать это в самом приложении. Ответственен ли FBSessionDelegate за это? Если да, то как мне получить его, чтобы он делал все это в приложении.

Ответы [ 3 ]

3 голосов
/ 17 марта 2011

Реализовали ли вы методы из протокола FBSessionDelegate, как определено в Facebook.h?

@protocol FBSessionDelegate <NSObject>
@optional
- (void)fbDidLogin;
- (void)fbDidNotLogin:(BOOL)cancelled;
- (void)fbDidLogout;
@end 

Они должны быть реализованы в объекте, который присвоен delegate в

[facebook authorize:permissions delegate:<delegate object>];

Вероятно, хорошей идеей будет сначала разрешить это предупреждение делегата.

0 голосов
/ 12 апреля 2011

FBSessionDelegate не несет ответственности за эту проблему.IOS SDK имеет запасной вариант для Safari, если не может запустить приложение FB.В Facebook.m в этом методе:

- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
                    safariAuth:(BOOL)trySafariAuth

... есть этот комментарий:

  // If the device is running a version of iOS that supports multitasking,
  // try to obtain the access token from the Facebook app installed
  // on the device.
  // If the Facebook app isn't installed or it doesn't support
  // the fbauth:// URL scheme, fall back on Safari for obtaining the access token.
  // This minimizes the chance that the user will have to enter his or
  // her credentials in order to authorize the application.

Этот комментарий объясняет причины, по которым Safari будет использоваться вместо приложения FB.

  1. Является ли ваш симулятор устройством, поддерживающим многозадачность?

  2. Установлено ли на вашем симуляторе приложение FB?

  3. Является ли приложение FB последней версией?(чтобы убедиться, что он поддерживает схему fbauth: //)

FBSessionDelegate, как объяснил dfrdmn, реализует 3 метода, которые все будут вызываться после того, как перенаправление в FB или Safari уже произошлои, следовательно, не вносит свой вклад в вашу проблему.

Чтобы избавиться от этого предупреждения, есть несколько вещей, которые вы должны обязательно сделать.

- В вашем файле .h убедитесь, чтоВы реализуете FBSessionDelegate.

@interface AppDelegate : NSObject <FBSessionDelegate>

- В своем файле .h убедитесь, что вы #import "Facebook.h".Использование @class Facebook не будет работать.

0 голосов
/ 16 марта 2011

Последний FBConnect SDK выполняет работу по управлению OAuth самостоятельно. Это нормально, что при входе вы переходите на страницу подключения Facebook в Safari. Читать это тема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...