package gapi-ocaml

  1. Overview
  2. Docs
A simple OCaml client for Google Services

Install

Dune Dependency

Authors

Maintainers

Sources

v0.4.5-opam.tar.gz
sha256=4bada280cb907cdced67f89ebd018dddbc2c2a367ee5b97ca6e49054a0e0cffa
md5=67fa053d31be79cb7009a858825909bc

Description

gapi-ocaml is a simple, unofficial, OCaml client for Google Services. The library supports ClientLogin, OAuth 1.0a, and OAuth 2.0 authentication. Supported RESTful APIs: Calendar APIs v3, Google+ API v1, Tasks API v1, APIs Discovery Service v1, URL Shortener API v1, OAuth2 API v2, Custom Search API v1, Google Analytics API v3, Page Speed Online API v1, Blogger API v2, Site Verification API v1, AdSense Management API v1.4, BigQuery API v2, Drive API v2, Drive API v3, Gmail API v1.

Published: 21 Nov 2023

README

Google APIs Client library for OCaml

gapi-ocaml is a simple, unofficial, OCaml client for Google Services. The library supports ClientLogin, OAuth 1.0a, and OAuth 2.0 authentication. Supported RESTful APIs:

  • Calendar APIs v3

  • Google+ API v1

  • Tasks API v1

  • APIs Discovery Service v1

  • URL Shortener API v1

  • OAuth2 API v2

  • Custom Search API v1

  • Google Analytics API v3

  • Page Speed Online API v1

  • Blogger API v2

  • Site Verification API v1

  • AdSense Management API v1.1

  • BigQuery API v2

  • Drive API v2

  • Drive API v3

  • Gmail API v1

Features

  • Monadic interface

  • Functional lenses to access data structures

  • Service generator (experimental): a tool for generating client libraries for APIs based on the Google API Discovery format

Building gapi-ocaml

Requirements

You will need the following libraries:

This library was developed and tested on Ubuntu LTS (64-bit).

Configuration and installation

To build the library, run

$ make

To install the library, run (as root, if your user doesn't have enough privileges)

$ make install

To build and run the tests, execute

$ make test

See src/test/README.md for further details regarding the tests.

To build the examples:

$ dune build @examples

See examples/README.md for further details regarding the examples.

To generate the documentation, run

$ make doc

Then you can browse the HTML documentation starting from gapi-ocaml.docdir/index.html, but is not installed by default.

To uninstall anything that was previously installed, execute

$ make uninstall

Usage

See auth examples in examples/auth for some examples of how to use Google's authorization endpoints.

See examples directory to find code samples that show usage of some services.

See tools/serviceGenerator.ml for a complex example of how to use functional lenses within the state monad.

See tools/README.md for the instructions of how to build and run the service generator utility.

Ocamlnet

To support OCaml 5, I removed the direct dependency on Ocamlnet. To do so, I imported (in the src directory) the netstring and netsys libraries from upstream, applied the patches from this PR, and further patched the code to compile and run correctly.

Dependencies (7)

  1. cppo >= "1.1.0"
  2. camlp-streams
  3. yojson >= "1.6.0"
  4. ocurl
  5. dune >= "2.0.0"
  6. cryptokit
  7. ocaml >= "4.08.0"

Dev Dependencies (1)

  1. ounit2 with-test

Used by (1)

  1. google-drive-ocamlfuse >= "0.7.22" & < "0.7.25" | >= "0.7.31"

Conflicts

None

OCaml

Innovation. Community. Security.