2012-03-23 9 views
2

私は基本的に、私はこの小さなC#プログラムは、(Googleのサンプル・プログラムから適応)ん何Haskellでやりたい、Haskellの内からGoogleドキュメントの文書を作成したい:HaskellでGoogleドキュメントのドキュメントをアップロードするには?

using Google.GData.Documents; 
using Google.GData.Client; 

namespace DocListUploader 
{ 
    public class GDocConsole 
    { 
     static void Main() 
     { 
      var user = "..."; 
      var passwd = "..."; 
      var file = "..."; 

      service = new DocumentsService("DocListUploader"); 
      service.setUserCredentials(user, passwd); 
      service.UploadDocument(file, null); 
     } 
    } 
} 

GoogleドキュメントAPIの説明からhere これは、hereと答えました。私は、2つのHTTP POSTを送信し、OAuthの認証を完了させることは「唯一の」問題だと理解しましたが、誰かがすでにそれを行い、私のためのいくつかのコードサンプルを持っていますか?

EDIT:それでもOAuthのライブラリを使用する方法を見つけ出すことができなかったので、私はほんの少しのC#ラッパーを書いた:HS-DOTNET経由

using Google.GData.Documents; 
using Google.GData.Client; 

public class GoogleDoc 
{ 
    public static int Upload(string user, string passwd, string file) 
    { 
     try 
     { 
      var service = new DocumentsService("DocListUploader"); 
      service.setUserCredentials(user, passwd); 
      service.UploadDocument(file, null); 

      return 0; 
     } 
     catch 
     { 
      return -1; 
     } 
    } 
} 

とハスケルからこのラッパーと呼ばを:

module Upload where 

import NET 

upload :: String -> String -> String -> IO (Int) 
upload user passed file = 
    invokeStatic "[GoogleDoc.dll]GoogleDoc" "Upload" (user, passed, file) 

testLocal :: IO() 
testLocal = do 
    let user = "..." 
    let passwd = "..." 
    let file = "..." 
    returnCode <- upload user passwd file 
    putStrLn (show returnCode) 
+1

私はGoogle Docs APIに慣れていませんが、[http package on Hackage](http://hackage.haskell.org/package/HTTP)をチェックしてください。 –

答えて

4

haskell-oauthライブラリを使用してoauthを実行し、ドキュメントをアップロードすることができます。すでに述べたように、Haskellからhttpパッケージを試すことができます。

+0

ありがとう!私はhaskell-oauthを走らせることができません。Windowsにカールをインストールするのは簡単ではないようです。 authenticate-oauthもうまく動作しますが、私は何をどのような順序で行う必要があるのか​​分かりません。例は素晴らしいでしょう... – martingw

+0

factual-apiパッケージは、hoauthの使用例を表しています。 http://hackage.haskell.org/packages/archive/factual-api/0.6.1/doc/html/src/Network-Factual-API.html –

関連する問題