2010-06-27 21 views
48

से वर्तमान उपयोगकर्ता की जानकारी प्राप्त करें मैं एक ट्विटर ऐप (ओएथ के साथ) का निर्माण कर रहा हूं और मुझे कोई जानकारी नहीं मिल रही है कि मैं वर्तमान उपयोगकर्ता की जानकारी कैसे प्राप्त कर सकता हूं।ट्विटर एपीआई

वर्तमान उपयोगकर्ता द्वारा, मेरा मतलब है कि उपयोगकर्ता ने मेरी ऐप अनुमतियां दी हैं और जिनके लिए ऐप एपीआई को अनुरोध कर रहा है।

कोई सुझाव?

https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials

उत्तर

60

यह वास्तव में "खाता/verify_credentials" के रूप में यहाँ देखा था।

जैसे अगर एपीआई वी के लिए प्रलेखन के लिए

$oauth = new TwitterOAuth([keys here]); 

$credentials = $oauth->get('account/verify_credentials'); 

echo "Connected as @" . $credentials->screen_name ."\n"; 
+3

लिंक पुराने v1 दस्तावेज़ों को देखने की अनुशंसा करता हूं। नया (v1.1) दस्तावेज़: https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials – joost

+0

अपडेट किया गया। सर उठाने के लिए धन्यवाद। – Swift

+1

यदि आपका ऐप स्वीकृत नहीं है, तो वैकल्पिक पैरामीटर 'include_email' को गलत https://dev.twitter.com/rest/reference/get/account/verify_credentials पर सेट करें अन्यथा आपको' आपके क्रेडेंशियल इस संसाधन तक पहुंच की अनुमति नहीं देंगे ' त्रुटि। –

2

OAuth का उपयोग आप अपने TwitterOAuth वस्तु से उपयोगकर्ता की जानकारी प्राप्त करने के लिए कॉल करने के लिए सक्षम हैं:

0

समाधान का सम्मान iOS:

1) यदि आप एक ट्विटर अकाउंट है (अर्थात ACAccount से ACAccountStore) आपके डिवाइस पर, केवल एक चीज जो आपको चाहिए उसे एसएलआरक्वेट से जोड़ना है और लौटाई गई शब्दकोश से सभी उपयोगकर्ता जानकारी प्राप्त करना है:

NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1.1/account/verify_credentials.json"]; 
NSMutableDictionary *params = [NSMutableDictionary new]; 
[params setObject:[Twitter sharedInstance].session.userID forKey:@"user_id"]; 
[params setObject:@"0" forKey:@"include_entities"]; 
[params setObject:@"1" forKey:@"skip_status"]; 
[params setObject:@"1" forKey:@"include_email"]; 

SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url parameters:params]; 
[request setAccount:twitterAccount]; //one of the Twitter Acc 
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) { 
    if (responseData) { 
     NSDictionary *twitterData = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:NULL]; 
     }); 

    }else { 
     NSLog(@"Error while downloading Twitter user data: %@", error); 
    } 
}]; 

2) अन्यथा - आपको OAuth (X-Auth) उपयोगकर्ता प्रमाण-पत्र भेजने की आवश्यकता है। आप ट्विटर SDK या के एक पुराने संस्करण का समर्थन करते

NSString *oauthParameters = authHeaders[@"X-Verify-Credentials-Authorization"]; 
         NSString *urlString = authHeaders[@"X-Auth-Service-Provider"]; 
         NSMutableURLRequest *request = 
         [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]]; 
         request.allHTTPHeaderFields = @{@"Authorization":oauthParameters}; 
         [request setHTTPMethod:@"GET"]; 
         NSOperationQueue *queue = [[NSOperationQueue alloc]init]; 
         [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response,NSData *data,NSError *error){ 
           NSDictionary *twitterData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:NULL]; 
         }]; 

:

TWTROAuthSigning *oauthSigning = 
         [[TWTROAuthSigning alloc] 
          initWithAuthConfig: 
          [Twitter sharedInstance].authConfig 
          authSession:session]; 
         NSDictionary *authHeaders = 
         [oauthSigning OAuthEchoHeadersToVerifyCredentials]; 

और शीर्ष लेख फ़ील्ड के रूप में साख संलग्न साधारण अनुरोध भेजने से: सबसे आसान तरीका है OAuth-पैरामीटर को पुनः प्राप्त करने TWTROAuthSigning वर्ग का उपयोग करने के लिए है अधिक विकल्पों की खोज में मैं STTwitter lib

संबंधित मुद्दे