Твиттер интегрирован в приложение Iphone - PullRequest
1 голос
/ 17 декабря 2010

Я использовал MGTwitterEngine

, которые пытаются войти в систему, затем ошибка запроса приходит

Сведения об ошибке

идентификатор соединения 6260FAFD-AE4E-4F05-AE67-FFA1DA18578F

описание ошибки Операция не может быть завершена. (Ошибка HTTP 401.)

ошибка информации о пользователе ({ body = "\ n \ n Клиентскому приложению запрещено использовать xAuth. \ n / oauth / access_token \ n \ n"; ответ = ""; })

Любая идея

-Амит Баттан

Ответы [ 4 ]

3 голосов
/ 17 декабря 2010

Обычная аутентификация больше не поддерживается Twitter. Вы можете использовать Twitter-oAuth-iPhone . Он добавил oAuth с MGTwitterEngine. Также есть проект с демонстрационным кодом. Однако вам потребуется SDK> = 3.2 для компиляции последней версии.

Проблема с xAuth в том, что вам нужно запросить команду Twitter API, предоставляющую подробности приложения. В случае oAuth это не требуется. Вам нужно будет создать приложение в Twitter Dev , а затем вам нужно будет использовать ключи в проекте. Это все.

1 голос
/ 15 февраля 2012

OAuth не требуется разрешение от Twitter.Но XAuth требуется.

Я не использую MGTwitterEngine , с официальным документом Twitter я поцарапал клиент с C, чтобы вычислить одноразовый номер и подпись, затем использую инструмент cURLтогда я могу получить oauth_token и token_secret.

Дополнительным сообщением о cURL является то, что вы, должно быть, создали свое приложение в Twitter, вы можете использовать OAuth tool в своем приложении (необязательно, чтобы оно было текущим приложением, над которым вы работаете).Если приложение в твиттере не является вашим текущим приложением, сначала вы должны сгенерировать командную строку cURL.Установите Настройки запроса на POST и Запрос URI на http://api.twitter.com/oauth/request_token, оставьте другие настройки по умолчанию, затем нажмите кнопку внизу страницы, затем вы увидите команду cURLэто выглядит так:

curl --request 'POST' 'http://api.twitter.com/oauth/request_token' --header 'Authorization: OAuth oauth_consumer_key="your_consumer_key", oauth_nonce="your_random_string", oauth_signature="your_signature", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1329273306", oauth_token="451145411-AxGXG8xNdW1Eymwx85hs3sc1OE3NYsXe578AUtPe", oauth_version="1.0"' --verbose

замените oauth_consumer_key, oauth_timestamp и oauth_signature на ваши, удалите oauth_token и его значение, скопируйте команду в cmd или shell и выполнить его.Другой важный трюк заключается в том, что вы должны явно пометить oauth_callback в Authorization и установить значение как oob:

auth_callback="oob"

Если ваши consumer_key и oauth_signature верны, этошаги не приведут к ошибке Client application is not permitted to use xAuth.

1 голос
/ 17 декабря 2010

MGTwitterEngine на данный момент значительно устарел, так как не использует xAuth / oAuth.См. Это руководство по использованию MGTwitterEngine с xAuth:

Переключение с Basic на xAuth с mgtwitterengine на iPhone

0 голосов
/ 21 декабря 2010

@ taskinoor там код, который я использую ... Я уже создал приложение в твиттере

Контроллер .h файл

#import <UIKit/UIKit.h>
#import "MGTwitterEngine.h"
@class OAToken;
@interface TwitterTestViewController : UIViewController <MGTwitterEngineDelegate> { 
    MGTwitterEngine *twitterEngine;
    OAToken *token;
}
@end

Контроллер.m файл

#import "TwitterTestViewController.h"
@implementation TwitterTestViewController
- (void)awakeFromNib{
    // Put your Twitter username and password here:
    NSString *username = @"amit_bursys";
    NSString *password = @"mypassword";
    NSString *consumerKey = @"my_key";
    NSString *consumerSecret = @"my_seret";
    if (! username || ! password || !consumerKey || !consumerSecret) {
        NSLog(@"You forgot to specify your username/password/key/secret in AppController.m, things might not work!");
        NSLog(@"And if things are mysteriously working without the username/password, it's because NSURLConnection is using a session cookie from another connection.");
    }
    twitterEngine = [[MGTwitterEngine alloc] initWithDelegate:self];
    [twitterEngine setUsesSecureConnection:NO];
    [twitterEngine setConsumerKey:consumerKey secret:consumerSecret];
    [twitterEngine setUsername:username];
    [twitterEngine getXAuthAccessTokenForUsername:username password:password];
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
}
- (void)dealloc {
    [super dealloc];
}
#pragma mark MGTwitterEngineDelegate methods
- (void)requestSucceeded:(NSString *)connectionIdentifier{
    NSLog(@"Request succeeded for connectionIdentifier = %@", connectionIdentifier);
}
- (void)requestFailed:(NSString *)connectionIdentifier withError:(NSError *)error{
    NSLog(@"Request failed for connectionIdentifier = %@, error = %@ (%@)", 
          connectionIdentifier, 
          [error localizedDescription], 
          [error userInfo]);
}
- (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier{
    NSLog(@"Got statuses for %@:\r%@", connectionIdentifier, statuses);
}
- (void)directMessagesReceived:(NSArray *)messages forRequest:(NSString *)connectionIdentifier{
    NSLog(@"Got direct messages for %@:\r%@", connectionIdentifier, messages);
}
- (void)userInfoReceived:(NSArray *)userInfo forRequest:(NSString *)connectionIdentifier
{
    NSLog(@"Got user info for %@:\r%@", connectionIdentifier, userInfo);
}
@end

и Журнал кодов

2010-12-21 11:14:31.533 TwitterTest[734:207] Request failed for connectionIdentifier = D28BD476-7315-4510-B51A-968E516D169D, error = The operation couldn’t be completed. (HTTP error 401.) ({
    body = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<hash>\n  <request>/oauth/access_token</request>\n  <error>Client application is not permitted to use xAuth.</error>\n</hash>\n";
    response = "<NSHTTPURLResponse: 0x6022470>";
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...