我已经阅读了有关此内容的文档和许多论坛帖子,但我在使用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"];
但都没有返回用户名。
有人设法检索此信息吗?非常感谢任何帮助。
答案 0 :(得分:1)
正如你所说twitter没有使用基本身份验证......它正在使用oauth。您的应用程序永远不会从身份验证中获取用户名或密码,它只获取oauth令牌...因此用户名不会存储在登录数据库中。
如果你想要用户名,你必须使用适当的api调用来查询它。
您可以检查shareKit的twitter模块的sendStatus
功能,并创建一个获取https://dev.twitter.com/docs/api/1/get/account/verify_credentials的函数...在那里您可以获得用户名和其他内容
答案 1 :(得分:0)
reborn ShareKit解决了这个问题。请参阅FAQ。
答案 2 :(得分:0)
Twitter OAuth会返回用户名,但ShareKit不会自动保存该用户名。要自己查找,请访问:
- (void)tokenAccessTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data
在SHKOAuthSharer.m中并从responseDictionary
对象中检索并保存您需要的用户名或任何其他数据。
例如,用户名可以由[responseDictionary objectForKey:@"screen_name"]
获取。然后,将其保存到NSUserDefaults或稍后可以检索的任何其他对象。当然,这只会在用户下次使用ShareKit登录Twitter时发生。
干杯!