"hello world"の例からRubyを使用しています。こんにちは世界の作品を見つける。私はこのGETを動作させようとしています。opt_fieldsはAsana APIでは動作しませんが、urlはAsanaエクスプローラで動作します
GET /projects/192372431230306/tasks?opt_fields=id,assignee,due_on,name,notes&limit=10&completed_since=now
これはAsana APIエクスプローラで期待通りに動作します。私は私のコードで同じURIを使用してい
:
uri = URI.parse("https://app.asana.com/api/1.0/projects/192372431230306/tasks?opt_fields=id,assignee,due_on,name,notes&limit=10&completed_since=now")
それはまだ正常にIDと名前を返しますが、それは私が欲しいものではありません。
なぜそれがエクスプローラで動作するのか分かりませんが、GET要求では動作しません。私はパーソナルトークンを使用しており、エクスプローラはOAuthを使用しています。 私の個人的なトークンは、このコードの前に正しく設定されています。タスクを作成し、プロジェクトを取得し、タスクを取得することができます。 APIエクスプローラのように、このクエリでフィールドを追加することはできません。
追加されたコード:
uri = URI.parse("https://app.asana.com/api/1.0/projects/192372431230306/tasks?opt_fields=id,assignee,due_on,name,notes&limit=10&completed_since=now")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
# set up the request
header = {
"Content-Type" => "application/json"
}
req = Net::HTTP::Get.new(uri.path, header)
req.basic_auth(personal_access_token, '')
res = http.start { |http| http.request(req) }
body = JSON.parse(res.body)
puts "projects: #{body['data']}"
ほとんどのコードを含めるように更新されました。それはまっすぐ進むべきであるように見えた。結果は、タスクIDと名前フィールドのみのJSONです。 – roguecode