fest

Sync public facebook page events to Google Calendar

https://github.com/amancevice/fest

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary

Keywords

aws facebook google-calendar heroku python

Keywords from Contributors

interactive serializer packaging network-simulation hacking autograding observability embedded optim standardization
Last synced: 6 months ago · JSON representation

Repository

Sync public facebook page events to Google Calendar

Basic Info
  • Host: GitHub
  • Owner: amancevice
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 300 KB
Statistics
  • Stars: 13
  • Watchers: 5
  • Forks: 5
  • Open Issues: 1
  • Releases: 17
Topics
aws facebook google-calendar heroku python
Created about 8 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

Facebook Event State Transfer

pypi python pytest coverage maintainability

Sync public facebook page events to Google Calendar.

Prerequisites

Before beginning you will need to create and configure a facebook app and use it to acquire a page access token for Graph API.

You will also need to set up a Google service account to acquire a credentials file to authenticate with Google APIs.

Installation

Install fest using pip:

bash pip install fest

Basic Use

Use clients for facebook's Graph API and Google's Calendar API to create FacebookPage and GoogelCalendar objects, then synchronize:

```python import facebook from googleapiclient import discovery

import fest

Connect to Graph API & Calendar API

graphapi = facebook.GraphAPI('') calendarapi = discovery.build('calendar', 'v3', cache_discovery=False)

Get Page/Calendar objects

page = fest.FacebookPage(graphapi, '') gcal = fest.GoogleCalendar(calendarapi, '')

Sync Calendar <= Page

req = gcal.sync(page, time_filter='upcoming') res = req.execute() ```

Deployment

Several methods of deployment are provided.

AWS

A pair of terraform modules module are provided to deploy this tool as a Lambda function on AWS and invoke it on a cron using CloudWatch.

```hcl

WARNING Be extremely cautious when using secret versions in terraform

NEVER store secrets in plaintext and encrypt your remote state

I recommend applying the secret versions in a separate workspace with no remote backend,

or curating them manually in the console or AWS CLI.

resource "awssecretsmanagersecretversion" "facebook" { secretid = module.facebookgcalsync.facebooksecret.id secretstring = "my-facebook-app-token" }

resource "awssecretsmanagersecretversion" "google" { secretid = module.facebookgcalsync.googlesecret.id secretstring = file("./path/to/my/svc/acct/creds.json") }

module facebookgcalsync { source = "amancevice/facebook-gcal-sync/aws" version = "~> 1.0"

facebookpageid = "" facebooksecretname = "facebook/my-app" googlecalendarid = "" googlesecretname = "google/my-svc-acct" } ```

Heroku

A terraform module module is provided to deploy this tool as a Heroku application.

hcl module facebook_gcal_sync { source = "amancevice/facebook-gcal-sync/heroku" app_name = "<unique-app-name>" facebook_page_id = "<facebook-page-id>" google_calendar_id = "<google-calendar-id>" google_credentials_file = "<path-to-google-service-credentials>" facebook_page_token = "<facebook-page-access-token>" }

Alternatively, deploy with one click:

Deploy

Owner

  • Name: Alexander Mancevice
  • Login: amancevice
  • Kind: user
  • Location: Brooklyn, NY
  • Company: Kickstarter

senior cloud infrastructrician

GitHub Events

Total
Last Year

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 224
  • Total Committers: 5
  • Avg Commits per committer: 44.8
  • Development Distribution Score (DDS): 0.112
Past Year
  • Commits: 5
  • Committers: 1
  • Avg Commits per committer: 5.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Alexander Mancevice a****e@c****m 199
Alexander Mancevice a****e@h****m 14
Alexander Mancevice a****e@g****m 9
Francesco Marino f****o@3****t 1
dependabot[bot] 4****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 3
  • Total pull requests: 9
  • Average time to close issues: 26 days
  • Average time to close pull requests: about 17 hours
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 3.0
  • Average comments per pull request: 1.22
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 6
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • 360fun (2)
  • duncan411 (1)
Pull Request Authors
  • dependabot[bot] (6)
  • amancevice (1)
  • jakob1379 (1)
  • 360fun (1)
Top Labels
Issue Labels
help wanted (1)
Pull Request Labels
dependencies (6)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 161 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 3
  • Total versions: 67
  • Total maintainers: 1
pypi.org: fest

Facebook Events Sync

  • Versions: 67
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 161 Last month
Rankings
Dependent repos count: 9.0%
Dependent packages count: 10.0%
Average: 13.8%
Forks count: 14.2%
Stargazers count: 16.0%
Downloads: 19.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

Pipfile pypi
  • ipdb * develop
  • ipython * develop
  • pytest * develop
  • pytest-cov * develop
  • pytest-flake8 * develop
  • twine * develop
  • facebook-sdk >= 3.0.0
  • google-api-python-client >= 1.6.4
  • requests >= 2.20.0
.github/workflows/pytest.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • amancevice/setup-code-climate v1 composite
pyproject.toml pypi
  • facebook-sdk >= 3.0
  • google-api-python-client >= 1.6.4
  • requests >= 2.20