如何使用SA_OAuthTwitterEngine在没有PIN的情况下发布iPhone推文?
我正在开发一个iPhone应用程序,它可以向twitter发送推文。为此,我使用SA_OAuthTwitterEngine+MGTwitterEngine类 我将应用程序注册到www.twitter.com/apps,并将消费者密钥和消费者机密传递给控制器。我的代码是如何使用SA_OAuthTwitterEngine在没有PIN的情况下发布iPhone推文?,iphone,twitter,oauth,twitter-oauth,mgtwitterengine,Iphone,Twitter,Oauth,Twitter Oauth,Mgtwitterengine,我正在开发一个iPhone应用程序,它可以向twitter发送推文。为此,我使用SA_OAuthTwitterEngine+MGTwitterEngine类 我将应用程序注册到www.twitter.com/apps,并将消费者密钥和消费者机密传递给控制器。我的代码是 if(!_engine){ _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self]; _engine.consumerKey
if(!_engine){
_engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];
_engine.consumerKey = slPcFUjUh5y1hex0zvEhPg;
_engine.consumerSecret = u6ydovMdP9yeiVqDukVhIzZPgJR9XDPUwfxymzNs;
}
UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];
if (controller){
[self presentModalViewController: controller animated: YES];
intTwitterFlag = 1;
}
之前在twitter.com/apps上,我选择Application type=client,我的应用程序将生成PIN和accessToken。但当我更改我的应用程序类型=浏览器时,它无法生成PIN和accessToken
以前,当应用程序类型为客户端时,我将提供用户名和密码,然后从webview控制返回到我的应用程序,但现在在输入用户名和密码后,它无法解除ModalViewController,而是显示“选择并复制PIN”
谢谢你的时间和你能给我的任何帮助 移动应用程序最好使用xAuth路由
检查XAuthTwitterEngine,它为MGTwitterEngine实现xauth我也遇到了同样的问题,我刚刚从twitter应用程序设置中删除了回调url。让我惊讶的是,登录过程没有任何问题。这里是:只需替换sau OAuthTwitterController.m中的方法:
- (void) webViewDidFinishLoad: (UIWebView *) webView {
_loading = NO;
//[self performInjection];
if (_firstLoad) {
[_webView performSelector: @selector(stringByEvaluatingJavaScriptFromString:) withObject: @"window.scrollBy(0,200)" afterDelay: 0];
_firstLoad = NO;
} else {
/*
NSString *authPin = [self locateAuthPinInWebView: webView];
NSLog(@"authPin: %@", authPin);
if (authPin.length) {
[self gotPin: authPin];
return;
}
NSString *formCount = [webView stringByEvaluatingJavaScriptFromString: @"document.forms.length"];
if ([formCount isEqualToString: @"0"]) {
[self showPinCopyPrompt];
}*/
//*****************************************************
// This is to bypass the pin requirement
// in case the call back URL is set in Twitter settings
//*****************************************************
[_engine requestAccessToken];
if ([_delegate respondsToSelector: @selector(OAuthTwitterController:authenticatedWithUsername:)])
{
[_delegate OAuthTwitterController: self authenticatedWithUsername: _engine.username];
}
[self performSelector: @selector(dismissModalViewControllerAnimated:) withObject: (id) kCFBooleanTrue afterDelay: 1.0];
//[self dismissModalViewControllerAnimated:YES];
}
[UIView beginAnimations: nil context: nil];
_blockerView.alpha = 0.0;
[UIView commitAnimations];
if ([_webView isLoading]) {
_webView.alpha = 0.0;
} else {
_webView.alpha = 1.0;
}
}
这种方法的替代品
(void) webViewDidFinishLoad: (UIWebView *) webView
在类中,SA_OAuthTwitterController.m工作得很好。感谢您的建议,您可以给我一个像SA_OAuthTwitterEngine这样的XAuthTwitterEngine示例。显然,xAuthTwitterEngine已被弃用,因为MGTwitterEngine现在只支持xauth和OAuth一个注释。。要使用xauth,您需要联系twitter并为您的应用程序请求xauth激活