2

SoundCloud APIを介してコメントを投稿したいのですが、ドキュメントを見ると不可能に/tracks/{id}/comments思えます。利用できる唯一の方法はですGET。送信しようとすると、POSTが表示されます。HTTP Error: 422コンソールを使用した場合も同じように422が表示されますが、それでもパラメーターとして"error_message": "Body can't be blank"追加しました。body=test

APIを介してコメントを追加する方法について何か考えはありますか?

たとえば、rubySDKを使用すると可能であるように思われます。

# create a new timed comment
comment = client.post("/tracks/#{track.id}/comments", :comment => {
  :body => 'This is a timed comment',
  :timestamp => 1500
})

しかし、私はObjective-C SDKを使用しており、これはこれまでの私のコードです(422を返します)。

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObject:content forKey:@"body"];
if (timestamp >= 0)
{
    [dict setObject:[NSString stringWithFormat:@"%i", timestamp] forKey:@"timestamp"];
}

NSString *resource = [NSString stringWithFormat:@"tracks/%i/comments", trackId];

[scAPI performMethod:@"POST" onResource:resource withParameters:dict context:delegate userInfo:nil];
4

2 に答える 2

3

わかりました、私は自分でそれを見つけることができました、私はJavaバージョンとその例を見ました:

List<NameValuePair> params = new java.util.ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("comment[body]", "This is a test comment"));

HttpResponse response = api.post("tracks/" + TRACK_ID + "/comments", params);

bodyそのため、キーとしてだけcomment[body]でなく、APIにそれを文書化せずに持つという奇妙な決定が、私が問題を抱えていたものでした。私は、提案されたルビーバージョンのようにキーを使用して別NSDictionaryのキーを使用して実行しようとしましたが、SDKはネストされた辞書を予期していなかったため、エラーが発生しました。したがって、コードは次のようになります。commentbodytimestamp

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObject:content forKey:@"comment[body]"];
if (timestamp >= 0)
{
    [dict setObject:[NSString stringWithFormat:@"%i", timestamp] forKey:@"comment[timestamp]"];
}

NSString *resource = [NSString stringWithFormat:@"tracks/%i/comments", trackId];

[scAPI performMethod:@"POST" onResource:resource withParameters:dict context:delegate userInfo:nil];
于 2012-05-27T10:02:23.923 に答える
-1

これは、他の製品もフリーランスで利用しながら、Amazonの最新の音楽、ビデオ、映画とうまく接続できる優れた音楽アプリです。

于 2018-03-24T19:31:23.393 に答える