2013-06-27 37 views
1

我想用下面的代碼訪問twitch api。Twitch Api - 不允許使用密碼

package droa.app.twitch; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.URISyntaxException; 
import java.util.ArrayList; 

import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 

public class Notifier { 

    /** 
    * @param args 
    * @throws URISyntaxException 
    * @throws IOException 
    * @throws ClientProtocolException 
    */ 
    public static void main(String[] args) throws URISyntaxException, ClientProtocolException, IOException { 
     HttpPost request = new HttpPost("https://api.twitch.tv/kraken/oauth2/token"); 
     org.apache.http.client.HttpClient client = new DefaultHttpClient(); 
     ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>(); 
     postParameters.add(new BasicNameValuePair("grant_type", "password")); 
     postParameters.add(new BasicNameValuePair("client_id", Credentials.clientid)); 
     postParameters.add(new BasicNameValuePair("client_secret", Credentials.clientsecret)); 
     postParameters.add(new BasicNameValuePair("username", Credentials.username)); 
     postParameters.add(new BasicNameValuePair("password", Credentials.password)); 
     postParameters.add(new BasicNameValuePair("scope", "user_read")); 
     request.setEntity(new UrlEncodedFormEntity(postParameters)); 
     HttpResponse httpResponse = client.execute(request);  

     BufferedReader rd = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); 

     String line = ""; 
     while ((line = rd.readLine()) != null) { 
      System.out.println(line); 
      } 


    } 

} 

但它似乎沒有工作,我得到一個錯誤。

{ 「狀態」:403, 「消息」: 「密碼許可不允許客戶端ID chodustnuqjzkc07ohd3rfkbzrlopzb」, 「錯誤」: 「禁止」}

我也跟着在https://github.com/justintv/Twitch-API/blob/master/password-credentials.md中的官導向

我在想,我做錯了什麼?

回答

1

我一直在嘗試做同樣的事情。如果你不使用JavaScript,它看起來是不可能的!我會嘗試curl-java:http://curl.haxx.se/libcurl/java/ 我無法得到它的工作,但你可能會!

但看着你的迴應,我會收集你的客戶在Twitch一些如何不能使用密碼授權流程。如果是這樣,這就是爲什麼我的Java應用程序不工作。如果API會拒絕用戶密碼授權流程,我會非常惱火...尤其是因爲沒有人告訴我!

「由於處理用戶密碼的敏感性,這種類型的授權流程只允許在個案基礎上進行。如果您認爲您的應用程序是一個很好的候選人,請直接與我們聯繫。 - 從他們的頁面-STRAIGHT!所有這一次我們做得很對!我會代表我與他們聯繫(我僅在這個問題上花了大約一個月的時間)。

+0

我改變了整個事情來運行瀏覽器腳本,而是返回的令牌,這種方式..它似乎很好地工作與PHP或JavaScript,然後Java ..我不知道爲什麼真的,但dosn't問題了,謝謝你的迴應,儘管遲到了:) – Droa