使用 STTwitterAPI 使用 twitter 登录一次
One time login with twitter using STTwitterAPI
如何使用 authToken 和 authTokenSecret 检查用户是否已经登录 Twitter?
我正在使用这段代码,但它的 return 值没有等待完成块执行。如何使用信号量或其他东西等到块执行然后函数 return 它的值。
- (BOOL)isTwitterLogin
{
__block BOOL value;
NSString *oauthToken=[[NSUserDefaults standardUserDefaults] valueForKey:@"iNtellTwitterToken"];
NSString *oauthTokenSecret=[[NSUserDefaults standardUserDefaults] valueForKey:@"iNtellTwitterTokenSecret"];
STTwitterAPI *twitterAPI = [STTwitterAPI twitterAPIWithOAuthConsumerKey:kTwitterConsumerKey consumerSecret:kTwitterConsumerSecret oauthToken:oauthToken oauthTokenSecret:oauthTokenSecret];
[twitterAPI verifyCredentialsWithSuccessBlock:^(NSString *username)
{
/// we still good to go
value=1;
} errorBlock:^(NSError *error)
{
/// token has expired. User needs to login again
value=0;
}];
return value;
}
我正在寻找执行此方法的最佳方法..
提前致谢!!!
"best way" 可能会保持异步行为:
- (void)isTwitterLoginWithCompletionHandler:(void(^)(BOOL isTwitterLogin))completionHandler {
NSString *oauthToken = [[NSUserDefaults standardUserDefaults] valueForKey:@"iNtellTwitterToken"];
NSString *oauthTokenSecret = [[NSUserDefaults standardUserDefaults] valueForKey:@"iNtellTwitterTokenSecret"];
if(oauthToken == nil || oauthTokenSecret == nil) {
completionHandler(NO);
return;
}
STTwitterAPI *twitterAPI = [STTwitterAPI twitterAPIWithOAuthConsumerKey:@""
consumerSecret:@""
oauthToken:oauthToken
oauthTokenSecret:oauthTokenSecret];
[twitterAPI verifyCredentialsWithSuccessBlock:^(NSString *username) {
completionHandler(YES);
} errorBlock:^(NSError *error) {
completionHandler(NO);
}];
}
如何使用 authToken 和 authTokenSecret 检查用户是否已经登录 Twitter?
我正在使用这段代码,但它的 return 值没有等待完成块执行。如何使用信号量或其他东西等到块执行然后函数 return 它的值。
- (BOOL)isTwitterLogin
{
__block BOOL value;
NSString *oauthToken=[[NSUserDefaults standardUserDefaults] valueForKey:@"iNtellTwitterToken"];
NSString *oauthTokenSecret=[[NSUserDefaults standardUserDefaults] valueForKey:@"iNtellTwitterTokenSecret"];
STTwitterAPI *twitterAPI = [STTwitterAPI twitterAPIWithOAuthConsumerKey:kTwitterConsumerKey consumerSecret:kTwitterConsumerSecret oauthToken:oauthToken oauthTokenSecret:oauthTokenSecret];
[twitterAPI verifyCredentialsWithSuccessBlock:^(NSString *username)
{
/// we still good to go
value=1;
} errorBlock:^(NSError *error)
{
/// token has expired. User needs to login again
value=0;
}];
return value;
}
我正在寻找执行此方法的最佳方法..
提前致谢!!!
"best way" 可能会保持异步行为:
- (void)isTwitterLoginWithCompletionHandler:(void(^)(BOOL isTwitterLogin))completionHandler {
NSString *oauthToken = [[NSUserDefaults standardUserDefaults] valueForKey:@"iNtellTwitterToken"];
NSString *oauthTokenSecret = [[NSUserDefaults standardUserDefaults] valueForKey:@"iNtellTwitterTokenSecret"];
if(oauthToken == nil || oauthTokenSecret == nil) {
completionHandler(NO);
return;
}
STTwitterAPI *twitterAPI = [STTwitterAPI twitterAPIWithOAuthConsumerKey:@""
consumerSecret:@""
oauthToken:oauthToken
oauthTokenSecret:oauthTokenSecret];
[twitterAPI verifyCredentialsWithSuccessBlock:^(NSString *username) {
completionHandler(YES);
} errorBlock:^(NSError *error) {
completionHandler(NO);
}];
}