1

これは迅速に答えられるべき緊急の質問です。画像をソーシャルネットワークで共有するiPhoneアプリケーションを開発しています。ShareKit2.0ライブラリを使用して共有機能を実装しています。これを使用して共有機能を完全に実装できます。ShareKitライブラリを使用してアプリに共有を実装することをお勧めします。

問題はFacebook/Twitterのログアウトにのみあります。それらからログアウトしたいときは、次のようなコードを使用しました。

[SHKFacebook logout];
[SHKTwitter logout];

または私は使用しました

[SHK logoutOfAll];

しかし、完全にログアウトできず、画像を共有しようとすると、「このアプリにXXXとしてログインしています」と表示され、確認を求められただけです。一方、iPhone / iPadからアプリを削除したとき、再度ログインするにはメールアドレスとパスワードが必要でした。

それは経験豊富で才能のある開発者にとって大きな問題ではないと思います。私を助けてください。アドバイスをお待ちしております。

ありがとう。ペイ。

4

3 に答える 3

2

ログアウト方法ではfacebookの全てのCookieが削除されないためログアウトできません。

以下のように、facebook.m ファイルの invalidateSession メソッドを変更します。

- (void)invalidateSession {
     self.accessToken = nil;
     self.expirationDate = nil;

     NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];

    for (NSHTTPCookie* cookie in cookies.cookies){
        if([cookie.domain rangeOfString:@"facebook"].location != NSNotFound){
            [cookies deleteCookie:cookie];
        }
   }

   // setting to nil also terminates any active request for whitelist
   [_frictionlessRequestSettings updateRecipientCacheWithRecipients:nil]; 
}

facebook のすべての Cookie が削除され、ログアウトが機能します。

于 2012-07-06T08:39:49.323 に答える
0

ShareKit 2.0 では、一度のログインで機能するため、facebook ページに移動してログアウトする必要があります。これは、一度だけログインしたことを意味し、iPhone の Facebook ページからログアウトするまでログインしたままになります。

于 2012-05-24T04:10:05.233 に答える
0

懸命に調査した結果、それらの解決策を見つけました。問題は、ShareKit ライブラリの Facebook.m の authorize メソッドにあります。

- (void)authorize:(NSArray *)permissions {
    self.permissions = permissions;

    [self authorizeWithFBAppAuth:YES safariAuth:NO];
}

上記は、Safari を使用していない Facebook を認証することを意味します。ユーザーが Facebook からログアウトしても、Safari の Cookie は完全には消去されません。そのため、Safari の認証方法を使用しないようにします。これにより、Facebook のログインはサファリではなくアプリ自体にあるようになります。

また、twitter については、ShareKit 2.0 では iOS 標準の Twitter フレームワークを使用して Twitter へのログイン/ログアウトを行っています。ユーザーは、iPhone の設定アプリケーションで自分のアカウントを使用して Twitter にサインインできます。ユーザーがアプリで Twitter に接続すると、登録済みのアカウントのみが使用され、ユーザーはリストから自分のアカウントを選択できます。

これらの問題の他の解決策はありますか?もしあれば、それらを知りたいです。

SOとみんなに感謝します。ペイ。

于 2012-05-24T15:52:27.797 に答える