2011-12-20 11 views
2

Javaを使用してAPI経由でredditにログインできますが、処理する投票を取得できません。これは、それを動作させるためだけのケースを減らす試みでした。しかし、私が戻ってくるのは、「ユーザーはこれを行う必要があります」です。何か案は?投票のためのReddit API

String apiParams = "api_type=json&id=c38ghjg&dir=1&uh=" + modHash; 

URL voteURL = new URL("http://www.reddit.com/api/vote"); 
HttpURLConnection connection = (HttpURLConnection) voteURL.openConnection(); 
connection.setDoOutput (true); 
connection.setRequestMethod ("POST"); 
connection.setUseCaches (false); 
connection.setRequestProperty ("Content-Type", 
          "application/x-www-form-urlencoded; charset=UTF-8"); 
connection.setRequestProperty("cookie", "reddit_session="+cookie); 
connection.setRequestProperty ("Content-Length", 
          String.valueOf(apiParams.length())); 
DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); 
wr.writeBytes(apiParams); 
wr.flush(); 
wr.close(); 
InputStream cis = connection.getInputStream(); 

HashMap<String, String> parameters = new HashMap<String,String>(); 

if(cis != null){ 
    ObjectMapper mapper = new ObjectMapper(); 

    TypeReference<Map<String, Object>> 
    mapReference = new TypeReference<Map<String, Object>>() { }; 

    Map<String, Object> resultJSON = mapper.readValue (cis, mapReference); 

    Map<String, Object> json = (Map<String, Object>) resultJSON.get ("json"); 
    Map<String, Object> data = (Map<String,Object>) json.get ("data"); 
    System.out.println(json); 
} 
+0

@Voo APIがあります。使用するモバイルアプリ。 SO APIの次のバージョンは投票をサポートしませんか?投票には認証されたユーザーでなければなりません。これは一番上の 'modHash'値です。フレッド、あなたはmodhashが正しいと確信していますか? – Rup

+0

@Rupええ、私はここに投稿するためにそれを引っ張ったが、ヘッダーからはそれが正しいと信じている。 – Fred

+0

投票ロボット?次に、彼らは[ドライバーの犯罪者]が必要になります(http://www.nytimes.com/2010/10/10/science/10google.html?pagewanted=all)。私たちはそれを持つことはできません! –

答えて

2

reddit_session cookieを先に設定しましたか?あなたは投票のような機能にアクセスする前にそれをしなければなりません。 (ログインjsonを通じてクッキーを取得する必要があります)。

関連する問題