0

私は趣味の VB 開発者で、しばらくの間デスクトップ アプリをいじっています。しかし、私は Web 開発や「Restful」API と呼ばれるものに関しては全くの初心者です (それで落ち着くはずですか?)

asana からタスク情報を取得するいくつかの投稿の背後にあるロジックをたどろうとしましたが、正直なところ、Web ページのバックエンドを作成するためだけに Ruby on Rails を勉強して理解する時間がありません (これは私が作成したものです)。どうすればいいのかわからないでしょう) asana に接続して情報を取得します。

次の手順をガイドしてくれる人を探しています ( Web から焦点を絞った記事を読むのは本当に気にしないので、お気軽にお勧めしますが、この時点までに読みすぎてここで思い出すことはできません。これは私に役立つ方向性を示しています)

新しいアプリケーションを作成するときは、次のことを行います。

  • 特定のアサナ タスクに接続する
  • タスクに関する特定の情報を取得する (ヘッダー/見出し/コメントなど)

私は次のことを試しました: webrequest を使用してアプリを作成する asana API のサンプルを読む (安らかな...しかし私にとってはそうではありません:))、rubygems、JSON、PHP などですが、これは単に多くの情報を提供するだけなので実用的ではありません。 ..ですから、これを達成する方法の簡単なサンプルを投稿できるVB開発者(またはc#)がいる場合は、本当に知りたいと思います。

1 つのリクエストが機能するようになったら、残りを実行できます。どのように/どこから始めればよいかを知りたいだけです

あなたのアドバイスは大歓迎です

これは私が現在使用しているコードです:

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim response As String = GetResponse("https://app.asana.com/0/taskIDhere")
        MsgBox(response)
 End Sub

Public Function GetResponse(uri As String, Optional data As String = "", Optional method As String = "GET") As String
        System.Diagnostics.Trace.WriteLine(uri)

        ' create request
        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(uri), HttpWebRequest)
        request.PreAuthenticate = True
        request.Method = method
        request.ContentType = "application/x-www-form-urlencoded"

        ' log in
        Dim authInfo As String = API_KEY & ":" & ""
        ' blank password
        authInfo = Convert.ToBase64String(Encoding.[Default].GetBytes(authInfo))
        request.Headers("Authorization") = "Basic " & authInfo

        ' send data
        If data <> "" Then
            Dim paramBytes As Byte() = Encoding.ASCII.GetBytes(data)
            request.ContentLength = paramBytes.Length
            Dim reqStream As Stream = request.GetRequestStream()
            reqStream.Write(paramBytes, 0, paramBytes.Length)
            reqStream.Close()
        End If

        ' get response
        Try
            Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
            Return New StreamReader(response.GetResponseStream()).ReadToEnd()
        Catch ex As WebException
            Dim response As HttpWebResponse = DirectCast(ex.Response, HttpWebResponse)
            Throw New Exception((uri & " caused a " & CInt(response.StatusCode) & " error." & vbLf) + response.StatusDescription)
        End Try
    End Function

しかし、これはウェブページのコンテンツを返すだけです

4

1 に答える 1

0

(私は Asana で働いています。) Asana API ドキュメントを見たことがありますか? 現時点での主な問題は、間違った URL にアクセスしていることです。すべての API リクエストは次で始まります。

https://app.asana.com/api/1.0/

そして、やりたいことに応じて、パスに何かを追加することができます。ほとんどのサービスでは、Web ベースのアクセスと API アクセスの URL が異なります。これは、動作が大きく異なることが多いためです。

簡単な GET リクエストについては、users/me上記のパスに追加してみてください。あなたの認証コードは私には正しいように見えるので、これはあなたが持っているコードでうまくいくと思います.

于 2013-05-16T15:44:17.323 に答える