POST JSON an API mit Rails und HTTParty

Möchte ich für einen user in meine ruby on rails app Einreichen zu können, ein ticket zu meiner externen ticket-management-system, squishlist.com. Sie haben eine api und Anweisungen wie folgt. Sie müssen sich authentifizieren und erhalten Sie einen token und sendet dann das ticket mit dem token. Von squishlist.

# get the token

https://api.squishlist.com/auth/?cfg=testcorp&user_key=privatekey&api_key=TEST-KEY-12345
  => {"token": "authtoken",
      "expires": "2010-06-16 13:31:56"}

# and then the ticket with the token

https://api.squishlist.com/rest/?cfg=testcorp&token=authtoken&method=squish.issue.submit&prj=demo
  POST data: {'issue_type': 1, 'subject': 'Hello, world.', 4: 'Open', 5: 10}

Für Testzwecke, ich habe einen controller erstellt, Strecke und Ansicht (Seite) zum testen. Auf meinem controller habe ich die folgenden

require 'httparty'
require 'json'

class SubmitticketController < ApplicationController

    def submit_a_ticket

        @cfg = 'xxxsupport'
        @user_key = '4787fsdbbfbfsdbhbfad5aba91129a3f1ed1b743321f7b'
        @api_key = 'MrUser411'
        @project = 'excelm-manoke'
        @url_new_string = 'https://api.squishlist.com/auth/?cfg='+@cfg+'&user_key='+@user_key+'&api_key='+@api_key
        # https://api.squishlist.com/auth/?cfg=xxxsupport&user_key=4787fsdbbfbfsdbhbfad5aba91129a3f1ed1b743321f7b&api_key=MrUser411  - this is what is created by @url_new_string
        response =  HTTParty.get(@url_new_string.to_str)  #submit the string to get the token
        @parsed_and_a_hash = JSON.parse(response)
        @token = @parsed_and_a_hash["token"]


        #make a new string with the token

        @urlstring_to_post = 'https://api.squishlist.com/rest/?cfg='+@cfg+'&token='+@token+'&method=squish.issue.submit&prj='+@project

        #submit and get a result

        @result = HTTParty.post(@urlstring_to_post.to_str, :body => {:subject => 'This is the screen name', :issue_type => 'Application Problem', :status => 'Open', :priority => 'Normal', :description => 'This is the description for the problem'})

    end

end

Und dann habe ich noch eine Seite, die ich gehen, um zu sehen, das Ergebnis der Controller-Aktionen und hat den folgenden code.

<p><%= @result %></p>

Ich weiß, dass es im Allgemeinen wegen der Antworten, die ich erhielt, auf dem Weg. Meine json unterscheidet sich von dem Beispiel, weil der Felder, die ich definiert habe, in squishlist. Kann mir jemand helfen zu dem Thema?

Ich denke, das eigentliche problem ist, dass ich kann nicht wirklich sehen, was der json aussieht und wenn es auch nur annähernd zu entsprechen. Ich weiß wirklich nicht viel über json. Soll ich mich mit etwas, das könnte leicht sein. Soll ich mich mit ajax Absenden. Jede Hilfe wird sehr geschätzt. Ich Liebe die community hier.

InformationsquelleAutor der Frage Homer Jon | 2011-09-17

Schreibe einen Kommentar