J'ai versé sur Internet pendant des jours pour essayer de déterminer comment implémenter cela.
Je dois demander le jeton d'accès et le secret de Twitter afin de transmettre ceci à un serveur qui traitera les tweets des utilisateurs pour mon application. p>
J'ai suivi ce lien HTTPS: // dev .Twitter.com / Docs / iOS / Utilisation-inverse-auth P>
Le problème est l'étape 1. Ils ne vous donnent pas d'exemple d'étape 1. p>
ici est Mon code: P>
NSURL *url = [NSURL URLWithString:TW_OAUTH_URL_REQUEST_TOKEN]; NSDictionary *parameters = @{TW_X_AUTH_MODE_KEY:TW_X_AUTH_MODE_REVERSE_AUTH}; SLRequest *getTwitterAuth = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url parameters:parameters]; // Assume that we stored the result of Step 1 into a var 'resultOfStep1' NSString *S = resultOfStep1; NSDictionary *step2Params = [[NSMutableDictionary alloc] init]; [step2Params setValue:@"kfLxMJsk7fqIuy8URhleFg" forKey:@"x_reverse_auth_target"]; [step2Params setValue:S forKey:@"x_reverse_auth_parameters"]; NSURL *url2 = [NSURL URLWithString:@"https://api.twitter.com/oauth/access_token"]; SLRequest *stepTwoRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodPOST URL:url2 parameters:step2Params]; // You *MUST* keep the ACAccountStore alive for as long as you need an ACAccount instance // See WWDC 2011 Session 124 for more info. self.accountStore = [[ACAccountStore alloc] init]; // We only want to receive Twitter accounts ACAccountType *twitterType = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter]; // Obtain the user's permission to access the store [self.accountStore requestAccessToAccountsWithType:twitterType withCompletionHandler:^(BOOL granted, NSError *error) { if (!granted) { // handle this scenario gracefully } else { // obtain all the local account instances NSArray *accounts = [self.accountStore accountsWithAccountType:twitterType]; // for simplicity, we will choose the first account returned - in your app, // you should ensure that the user chooses the correct Twitter account // to use with your application. DO NOT FORGET THIS STEP. [stepTwoRequest setAccount:[accounts objectAtIndex:0]]; // execute the request [stepTwoRequest performRequestWithHandler: ^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) { NSString *responseStr = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; // see below for an example response NSLog(@"The user's info for your server:\n%@", responseStr); }]; } }];
4 Réponses :
La première étape que l'étape, vous n'avez pas de code, c'est qu'ils supposent que vous le ferez sur votre serveur ou avant la main ou quelque chose comme ça. Fondamentalement, vous devez générer une clé que votre application utilisera pour convertir les jetons iOS en jetons normaux. P>
Il y a un script qui vous demande ici: http: // www.ananseProductions.com/twitter-reverse-auth-adaches/ son écrit en rubis afin que vous puissiez utiliser quelque chose de similaire si vous avez un serveur rubis. P>
Personnellement, j'aurais une demande d'application de mon jeton de mon serveur, puis apportez la demande à Twitter, puis postez le nouveau jeton de retour sur mon serveur. P>
Voici une classe pour aider à accomplir cela avec une seule méthode appel qui renvoie un dictionnaire avec le jeton et le secret de jeton. P>
https://github.com/kbegeman/twitter-reverse-auth << / p>
J'espère que cela aide les autres sortez! p>
sa ne fonctionne pas, bien qu'en aller dans le bloc, mais avec une valeur d'identification = "<< version xml" = "\" 1.0 \ "coding = \" utf-8 \ "?> \ n
A partir de ce code https://github.com/seancook/twreverseAuthexample , c'est assez simple de mettre en œuvre dans votre propre application. Je préfère créer des classes réutilisables, donc je n'ai pas à mettre en œuvre le même code plusieurs fois. Normalement, vous créeriez du singleton et travaillez-y sur le tutoriel suivant. Cependant, le point de cette instruction n'est pas de vous apprendre à créer des singletons, donc pour la simplicité, nous utiliserons Tout ce que vous avez à faire est ce qui suit: p> Ouvrez le projet de vous et de Sean Cook (celui de l'URL qui est supérieur à) p> li>
glisser et copie source-> Vendor-> Groupe AboAuthCore dans votre projet P> LI>
Sélectionnez Ajoutez le code ci-dessous dans votre fichier AppDelegate.h P>
@property (nonatomique, fort) acaaccountStore * Store; P>
@property (nonatomique, fort) Twapimanager * apimanager; p>
@property (nonatomique, fort) nsarray * comptes; p>
- (vide) StoreacCountwitHAccessToken: (Nstring *) Jeton Secret: (Nstring *) Secret; P>
- (vide) SpectacleSeauth: (ID) Sender Soutien: (UIView *) ViewTodisplayheet; P>
- (vide) _refreshToutwitterCounts; p> li>
Collez maintenant les méthodes suivantes dans votre - (VOID) ActionSheet: (Uiacersheet *) ActionSheet ClickEdButtonAindex: (Nsinteger) BoutonIndex; P>
- (vide) _refreshTwitterCounts; p>
- (vide) _ObtainAccessToAbountBlock: (vide (^) (BOOL)) Bloc; P>
- (void) PerformEverseeauth: (ID) Sender Sender: (UIView *) ViewToDisplayheet; P> Li>
dans une méthode d'initialisation de votre fichier ou à partir de cet exemple dans: `Application: DidfinishlaunchingwithOptions 'Coller le code suivant: P>
_store = [[ACAccountstore Alloc] init]; p>
_apimanager = [twapimanager alloc] init]; p>
[[NSNOTIFICATIONCENTER DEFAULTERCENTER] Addobserver: Sélecteur auto-sélecteur: @Selector (_refreshToutwitterCounts) Nom: AcAccountoredidChangenotification Object: Nil]; P> Li>
N'oubliez pas de supprimer l'observateur à l'aide du code suivant. Coller dans - (vide) dealloc { p>
Ouvrez votre application twitter_consumer_key p>
twitter_consumer_secret p> li>
Dans le contrôleur d'affichage que vous souhaitez utiliser pour implémenter les fonctionnalités de Twitter, dans la méthode Appdelerate * Appdelegate = [UIAPPLication SharedApplication] .Delegate; P>
[Appdelegate _refreshTitterCounts]; P> Li>
OK, vous êtes enfin prêt à démarrer la machine entière. Dans le contrôleur d'affichage que vous souhaitez utiliser pour implémenter les fonctionnalités de Twitter, créez Appdelerate * Appdelegate = [UIAPPLication SharedApplication] .Delegate; P>
[Appdelegate SpectacleResterSeauth: Sender Soutien: Self.View]; P> Li>
ol> whew, je suppose que c'est ça! Si je n'ai pas oublié quoi que ce soit, vous avez de la mise en œuvre de Twitter inverse OAuth, et si vous souhaitez l'utiliser dans plusieurs contrôleurs de vue, tout ce que vous avez à faire est de faire des étapes 1 à 8, puis collez le code des étapes 9 et 10 dans votre contrôleur d'affichage. p> meilleures salutations! p> p> appdelegate.h / m code> qui est facilement accessible de toute l'application.
twapimanager.h / m code>,
twsignedrequest.h / m code> et copiez-les dans votre projet P> LI>
appdelegate.m code> fichier p>
Appdelegate.M Code>: P>
[[NSNotificationCenter defaultCenter] removeObserver:self];
app-info.plist code> Fichier et ajouter 2 clés de chaîne. Prenez leurs valeurs de: https://apps.twitter.com/ p>
ViewDidLoad code>, ajoutez le code suivant: p>
uibutton code> appelé
_réverseauthbtn code> et créer un
ibaction code>. Ensuite, dans votre
ibaction code> coller le code suivant: p>
Utilisez cette lib, cela fonctionne parfaitement! p>
https://github.com/nst/stwitter p>
Info Comment implémenter: https://github.com/nst/stwitter#Reverse-Authentication p>
:) p>