2011-07-22 41 views
5

Merhaba Twitter uygulamasında kimlik doğrulaması yapmak için JTwitter işlevlerini kullanmakta zorluk çekiyorum. Hep, bu "callbackURL" dir ve heyecan benim uygulamasında bir "TwitterException" İşte Android Jtwitter, kimlik doğrulama sorunları

benim yöntem

OAuthSignpostClient oauthClient = new OAuthSignpostClient(consumerKey, 
      privateKey, "oob"); 

a) "oob" değer olmalıdır * bilmiyorum olsun o "callBack URL: none" yüzden hiçbir farklılık gösteren sonuçlar ile "none", "None" ve null"oob" koyarak denedim söylüyor.

sonra gerisi ben sadece bu işi yapmak için nasıl emin değilim, bu noktada

Intent i = new Intent(Intent.ACTION_VIEW, 
    Uri.parse(oauthClient.authorizeUrl().toString())); 
    startActivity(i); 
    // get the pin 
    String v = oauthClient.askUser("Please enter the verification PIN from Twitter"); 
    oauthClient.setAuthorizationCode(v); 
    // Store the authorisation token details for future use 
    String[] accessToken = oauthClient.getAccessToken(); 
    // Next time we can use new OAuthSignpostClient(OAUTH_KEY, OAUTH_SECRET, 
    //  accessToken[0], accessToken[1]) to avoid authenticating again. 

    EditText twitterText = (EditText)findViewById(R.id.twitterText); 
    twitterText.getText(); 

    // Make a Twitter object 
    Twitter twitter = new Twitter(null, oauthClient); 
    // Print Daniel Winterstein's status 
    //System.out.println(twitter.getStatus("winterstein")); 
    // Set my status 
    twitter.setStatus(twitterText.getText()); 

klişe olduğunu. Bu konuda daha ayrıntılı olabilirdim, ama kimlik doğrulaması ile ilgili bir şey var. Gördüğüm Çevrimiçi şeyler Sorunun bu olduğundan emin değilim

cevap

7

geri arama url olarak bu deneyin:

OAuthSignpostClient oauthClient = 
    new OAuthSignpostClient(consumerKey, privateKey, "callback://twitter"); 

unutmayın! Sonra:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl))); 

doğrulama kodu

protected void onResume() { 
    super.onResume(); 
    if (this.getIntent()!=null && this.getIntent().getData()!=null){ 
     Uri uri = this.getIntent().getData(); 
     if (uri != null && uri.toString().startsWith("callback://twitter")) { 
      //Do whatever you want 
      //usually use uri.getQueryParameter(someString); 
      //test what could be someString using Log.v("",uri.toString()); 
      //u want the Authorization code which is a couple of numbers 
      //so you could use oauthClient.setAuthorizationCode(v); 
      //and finally initialise Twitter 
     } 
    } 
} 

Sen parametresini String adları almanın uri.getQueryParameterNames() kullanabilirsiniz almak için aşağıdaki

kılmaonResume() yapın.


@BobVork

Sadece (twitter.com üzerindeki) Twitter uygulamasına ilişkin ayarlar sekmesinde ayarlanmış bir geri çağırma URL'ye sahip gerekeceğini eklemek istiyorum.

Bu, alana ne koyduğunuz önemli değildir, ancak boşsa, geri çağırma URL'leri çalışmayacaktır.

+1

Sadece Twitter uygulamanızın Ayarlar sekmesinde (twitter.com) ayarlanmış bir geriçağırım URL'si olması gerektiğini eklemeyi isterim. Bu, alana koyduğunuz şeyden bile önemli değil, ancak boşsa, geri çağırma URL'leri çalışmayacaktır. Bunu bulmak bir saat sürdü, bu yüzden bir başkasını kurtarabilir diye düşündüm. –

1

faydalı olmamıştır, ancak twitter nesne için kullanıcı adı ayarlamak asla gibi görünüyor.

+0

Yemin noktası, kullanıcının kullanıcı adını veya başka bir şeyi koyması gerekmediğini düşünmüştüm.Şikayetler kavramı, ilk sezgimiz, kullanıcı adının bir yere gittiğiydi, ama daha sonra twitter nesnesi onu gerektirmiyor gibi görünüyordu ve birisinin yeminine bakacaktı – CQM

+0

Twitter API'larına aşina değilim, ama baktığım her yerde (hatta Kodu aldığınız örnek, oAuth kullanıldığında bile kullanıcı adı da kullanıldı. Bir kez tutabilir ve gerektiğinde kullanabilirsiniz, her zaman bazı TextView'den okumak zorunda değilsiniz. – MByD

1

Jtwitter API'sı ile nasıl bir şey olduğunu bilmiyorum ve bu kodun iç işleyişini gerçekten anlamak için şu anda yeterli Java bilmiyorum, fakat denediniz, NULL veya None yerine, yerine ? deneyin. Bu, Javascript'ten çağrı yaparken geri kalan API ile kullanılan geri çağrıdır. Denemek.

İlgili konular