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

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 回答
0

这个问题在重生的 ShareKit中得到了解决。请参阅常见问题解答

于 2011-11-23T07:24:10.043 回答