{"id":13764413,"url":"https://github.com/nshimaza/webex-teams-api","last_synced_at":"2026-02-18T22:01:50.416Z","repository":{"id":56882490,"uuid":"98136233","full_name":"nshimaza/webex-teams-api","owner":"nshimaza","description":"A Haskell binding of Cisco Webex Teams (formerly Cisco Spark) API","archived":false,"fork":false,"pushed_at":"2020-07-29T15:08:27.000Z","size":189,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-02T22:09:36.943Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nshimaza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-24T01:15:18.000Z","updated_at":"2022-06-02T15:20:52.000Z","dependencies_parsed_at":"2022-08-20T13:00:44.593Z","dependency_job_id":null,"html_url":"https://github.com/nshimaza/webex-teams-api","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/nshimaza/webex-teams-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshimaza%2Fwebex-teams-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshimaza%2Fwebex-teams-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshimaza%2Fwebex-teams-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshimaza%2Fwebex-teams-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nshimaza","download_url":"https://codeload.github.com/nshimaza/webex-teams-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshimaza%2Fwebex-teams-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29486053,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T16:00:20.252Z","updated_at":"2026-02-18T22:01:50.401Z","avatar_url":"https://github.com/nshimaza.png","language":"Haskell","funding_links":[],"categories":["Client SDKs"],"sub_categories":["REST API clients"],"readme":"# webex-teams-api\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)\n[![Build Status](https://github.com/nshimaza/webex-teams-api/workflows/build/badge.svg)](https://github.com/nshimaza/webex-teams-api/actions?query=workflow%3Abuild)\n[![Hackage](https://img.shields.io/hackage/v/webex-teams-api.svg?style=flat)](https://hackage.haskell.org/package/webex-teams-api)\n[![Stackage Nightly](http://stackage.org/package/webex-teams-api/badge/nightly)](http://stackage.org/nightly/package/webex-teams-api)\n[![Stackage LTS](http://stackage.org/package/webex-teams-api/badge/lts)](http://stackage.org/lts/package/webex-teams-api)\n\nA Haskell bindings for Cisco Webex Teams (formerly Cisco Spark) API\n\nWebex-teams-api (formerly cisco-spark-api) package provides types and functions\nfor accessing Cisco Webex Teams REST API.  Details of the API is available\nfrom [developer site of Cisco Webex](https://developer.webex.com/)\n\nThis package is designed to improve type safety over the API.  Each entity is\nseparately typed.  JSON messages contained in REST responses are decoded into\nappropriate type of Haskell record.  JSON messages sent in REST requests are\nencoded only from correct type of record.\n\nSome Webex Teams REST API return list of objects.  Those APIs require HTTP Link\nHeader based pagination.  Haskell functions for those APIs automatically request\nsubsequent pages as needed.  This repo provides optional packages for streaming\nresponse of list API.  Webex-teams-conduit and webex-teams-pipes are thin\nwrappers of list API.  They transform chunky response from list API into\nseamless stream of elements.\n\nThis package also provides some sample usage in command line application style.\nSee source under app directory of the source package.\n\n### Sample Usage\n\nSending a message to a Room.\n\n```haskell\n    let auth        = Authorization \"your authorization token\"\n        roomId      = RoomId \"Room ID your message to be sent\"\n        messageText = MessageText \"your message\"\n        message     = CreateMessage (Just roomId) Nothing Nothing (Just messageText) Nothing Nothing\n    createEntity auth def createMessage \u003e\u003e= print . getResponseBody\n```\n\nFollowing example is calling List Membership API which returns membership between\nRooms and users (Person).  You can extract each Membership from\nConduit pipe.  The `streamListWithFilter`, provided by webex-teams-conduit,\nautomatically performs pagenation when it is asked more element and last\nresponse had link of subsequent page in HTTP Link Header.\n\n```haskell\n    let auth   = Authorization \"your authorization token\"\n        filter = MembershipFilter yourRoomId Nothing Nothing\n    runConduit $ streamListWithFilter auth def filter .| takeC 200 .| mapM_C print\n```\n\nYou can find more examples in app/Main.hs under webex-teams-pipes or\nwebex-teams-conduit.\n\n### Support for Lens\n\nThis package provides many of records representing objects communicated via\nWebex Teams REST API.  Those records are designed to allow create lenses by\nControl.Lens.TH.makeFields.\n\nFollowing example creates overloaded accessors for 'Person', 'Room' and 'Team'.\n\n```haskell\nmakeFields ''Person\nmakeFields ''Room\nmakeFields ''Team\n```\n\nYou can access 'personId', 'roomId' and 'teamId' via overloaded accessor\nfunction 'id' like this.\n\n```haskell\n    let yourPersonId = yourPerson ^. id\n        yourRoomId = yourRoom ^. id\n        yourTeamId = yourTeam ^. id\n```\n\nThis package does not provide pre-generated lenses for you because not everyone\nneed it but you can make it by yourself so easily as described.\n\n### Limitation\n\n- WebHook API is not yet implemented.\n- Relative reference in Link Header is not recognized as next page\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnshimaza%2Fwebex-teams-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnshimaza%2Fwebex-teams-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnshimaza%2Fwebex-teams-api/lists"}