2

これに関するドキュメントと多くのフォーラムの投稿を読みましたが、Sharekit の使用中に認証済みユーザーのユーザー名を取得できません。私はoAuthを使用しています。

ユーザーは正常に認証でき、ステータスの更新を Twitter に投稿できます。Sharekit のドキュメントには、ユーザー名の取得について次のように書かれています。

保存されたログインへのアクセス

Web サービスが基本認証を使用している場合、共有アイテムと共にユーザー名とパスワードを送信する必要がある可能性があります。ユーザーが認証されると、資格情報が保存され、簡単にアクセスできるようになります。

// To retrieve a stored value:
// self = your service class
// In this example, let's retrieve the username and password:
NSString *username = [self getAuthValueForKey:@"username"];
NSString *password = [self getAuthValueForKey:@"password"];

//The keys used to retrieve the data are the same keys you used 
// when defining your login form:
- (NSArray *)authorizationFormFields
{
    return [NSArray arrayWithObjects:
            [SHKFormFieldSettings label:@"Username"
                                          key:@"username" <---
                                          type:SHKFormFieldTypeText
                                          start:nil],
            [SHKFormFieldSettings label:@"Password"
                                          key:@"password" <---
                                          type:SHKFormFieldTypePassword
                                          start:nil],           
            nil];
}

使ってみました

NSString *username  = [SHK getAuthValueForKey:@"username"];

NSString *username  = [SHKTwitter getAuthValueForKey:@"username"];

どちらもユーザー名を返しません。

誰かがこの情報を取得できましたか? どんな助けでも大歓迎です。

4

3 に答える 3

1

あなたが言ったように、Twitterは基本認証を使用していません..それはoauthを使用しています。アプリは認証からユーザー名またはパスワードを取得することはなく、oauth トークンのみを取得するため、ユーザー名はログイン データベースに保存されません。

ユーザー名が必要な場合は、適切な API 呼び出しを使用してクエリを実行する必要があります。

sendStatusshareKit の twitter モジュールの機能を確認し、https: //dev.twitter.com/docs/api/1/get/account/verify_credentials を取得する関数を作成できます。ユーザー名やその他のものを取得できます。

于 2011-08-09T11:59:05.640 に答える
0

この問題は、生まれ変わったShareKitで解決されます。FAQを参照してください。

于 2011-11-23T07:24:10.043 に答える
0

Twitter OAuth はユーザー名を返しますが、ShareKit によって自動的に保存されません。自分で見つけるには、次の場所にアクセスしてください。

- (void)tokenAccessTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data 

SHKOAuthSharer.m で、ユーザー名またはオブジェクトから必要なその他のデータを取得して保存しresponseDictionaryます。たとえば、ユーザー名は で取得できます[responseDictionary objectForKey:@"screen_name"]。次に、それを NSUserDefaults または後で取得できるその他のオブジェクトに保存します。もちろん、これはユーザーが次に ShareKit を使用して Twitter にログインしたときにのみ発生します。乾杯!

于 2013-06-05T11:22:47.480 に答える