Как получить имя пользователя Twitter с помощью Sharekit - PullRequest
2 голосов
/ 09 августа 2011

Я прочитал документы и многие посты на этом форуме, но я не могу получить имя авторизованного пользователя при использовании Sharekit. Я использую oAuth.

Пользователь может пройти аутентификацию, а я могу публиковать обновления статуса в Twitter. Документы для Sharekit говорят об извлечении имени пользователя:

Доступ к сохраненным логинам

Если ваш веб-сервис использует базовую аутентификацию, вам, вероятно, потребуется отправить имя пользователя и пароль вместе с общим элементом. После того как пользователь прошел аутентификацию, учетные данные сохраняются и легко доступны.

// 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"];

но ни одно из них не возвращает имя пользователя.

Кому-нибудь удалось получить эту информацию? Любая помощь очень ценится.

Ответы [ 3 ]

1 голос
/ 09 августа 2011

Как вы сказали, твиттер не использует базовую аутентификацию .. он использует oauth. Ваше приложение никогда не получает имя пользователя или пароль от аутентификации, оно только получает токены oauth ... поэтому имя пользователя не сохраняется в базе данных входа в систему.

Если вы хотите, чтобы имя пользователя вы запрашивали, используя соответствующие вызовы API.

Вы можете проверить функцию sendStatus модуля twitter в shareKit и создать функцию, которая получает https://dev.twitter.com/docs/api/1/get/account/verify_credentials ... там вы получите имя пользователя и другие вещи

0 голосов
/ 05 июня 2013

Twitter OAuth возвращает имя пользователя, но ShareKit не сохраняет его автоматически.Чтобы найти его самостоятельно, перейдите по адресу:

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

в SHKOAuthSharer.m и получите и сохраните имя пользователя или любые другие необходимые данные из объекта responseDictionary.Например, имя пользователя может быть получено с помощью [responseDictionary objectForKey:@"screen_name"].Затем сохраните его в NSUserDefaults или любом другом объекте, который вы сможете получить позже. Конечно, это произойдет только в следующий раз, когда пользователь войдет в Twitter с помощью ShareKit.Ура! * * 1006

0 голосов
/ 23 ноября 2011

Эта проблема решена в reborn ShareKit . См. FAQ .

...