facebook urlで提供されている情報に従います。そのうまくいけばいいし、面白いアプリなら、そのデバイスにはない。
facebookアプリがデバイスに搭載されていないと見なします:Facebookブックとそのオープニングサファリを許可しています。私はアプリを承認し、iosアプリに戻り、FBSessionDelegateの代理人 "fbDidLogin"を呼び出します。私は上記のURLで述べたように、アクセストークンと有効期限を保存しています。その後、私はそれをFacebookに投稿することができます。これは正常に動作します。
今、facebook appがデバイス上で利用可能で、ログインしています。私が "authorize"と呼ぶと、facebook appを開き、appを承認してからios appに戻ります。 "fbDidLogin"デリゲートメソッドを呼び出すことはありません。アクセストークンと有効期限をどのように認識する必要がありますか?
私は次のコードを書いています:
facebook = [[Facebook alloc] initWithAppId:FB_APPID andDelegate:self];ios5 - facebookアプリが既に端末に登録されている場合にFacebookに投稿
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"])
{
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
NSArray* permissions = [NSArray arrayWithObjects:@"publish_stream",nil];
if (![facebook isSessionValid])
{
[facebook authorize:permissions];
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults setBool:YES forKey:@"IIRY_FACEBOOK"];
[defaults synchronize];
}
私がやっている間違いを指摘できますか?
しかし、私はまだFacebookのコードを変更せずにデフォルトの機能を使いたいと思っています。しかし、Facebookの文書によると、彼らはこのような状況をどう扱うかについて何も言及していませんでした。かなり悪いです。 – Satyam