Я хочу создать документ Google Docs из Haskell, поэтому в основном я хочу сделать в Haskell то, что делает эта маленькая программа на C # (адаптировано из примера программы 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Описание Docs API здесь и этот SO-ответ здесь Я понял, что это "всего лишь" вопрос отправки пары HTTP POST и выполнения аутентификации OAuth, но только как?Кто-нибудь уже сделал это и имеет несколько примеров кода для меня ...?
РЕДАКТИРОВАТЬ: Все еще не мог понять, как использовать библиотеки oauth, поэтому я просто написал небольшую оболочку C #:
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;
}
}
}
и вызвал эту оболочку из Haskell через hs-dotnet:
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)