All Projects → hamishgibbs → pull_facebook_data_for_good

hamishgibbs / pull_facebook_data_for_good

Licence: MIT License
[DEPRECATED] Imitate an API for downloading data from Facebook Data For Good

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pull facebook data for good

Noty
⛔️ DEPRECATED - Dependency-free notification library that makes it easy to create alert - success - error - warning - information - confirmation messages as an alternative the standard alert dialog.
Stars: ✭ 6,725 (+55941.67%)
Mutual labels:  obsolete, depracated
Thirukkural-English-Translation-Dataset
Thirukural in English
Stars: ✭ 12 (+0%)
Mutual labels:  dataset
ionic-3D-card-carousel
DEPRECATED Sample project that shows an experimental 3D card carousel in Ionic.
Stars: ✭ 29 (+141.67%)
Mutual labels:  obsolete
Sphero-AR-SDK
🚫 DEPRECATED: Sphero's augmented reality SDK
Stars: ✭ 46 (+283.33%)
Mutual labels:  obsolete
Azure-AppServices-Diagnostics
Azure App Service Diagnostics provides developers ability to write various diagnostics features which helps customers to diagnose and troubleshoot their applications hosted on app services.
Stars: ✭ 42 (+250%)
Mutual labels:  obsolete
react-native-apple-sign-in
Apple Signin for your React Native applications
Stars: ✭ 16 (+33.33%)
Mutual labels:  obsolete
lazybones-aem-templates
🚨[DEPRECATED] Lazybones templates for Adobe Experience Manager🚨
Stars: ✭ 68 (+466.67%)
Mutual labels:  obsolete
ACVR2017
An Innovative Salient Object Detection Using Center-Dark Channel Prior
Stars: ✭ 20 (+66.67%)
Mutual labels:  dataset
climateR
An R 📦 for getting point and gridded climate data by AOI
Stars: ✭ 93 (+675%)
Mutual labels:  dataset
QR
DEPRECATED The bookmarklet and extensions generate QRCode of the current URL for viewing on mobile devices (Google Chrome/Mozilla Firefox/Opera/Safari)
Stars: ✭ 20 (+66.67%)
Mutual labels:  obsolete
PrestaShop-1.6
Open-source e-commerce solution version 1.6
Stars: ✭ 27 (+125%)
Mutual labels:  obsolete
crm114.rb
[Retired] Ruby interface to the CRM114 Controllable Regex Mutilator.
Stars: ✭ 29 (+141.67%)
Mutual labels:  obsolete
Kwicks
⛔ Kwicks for jQuery - fork of jQuery Kwicks by Jeremy Martin
Stars: ✭ 50 (+316.67%)
Mutual labels:  obsolete
rok4
ROK4 est une suite d'outils open source développée par l'IGN France permettant la diffusion de données raster et vecteur en WMS, WMTS ou TMS. DEPRECATED ! Projet maintenu ici : https://github.com/rok4/documentation
Stars: ✭ 18 (+50%)
Mutual labels:  obsolete
TVQAplus
[ACL 2020] PyTorch code for TVQA+: Spatio-Temporal Grounding for Video Question Answering
Stars: ✭ 99 (+725%)
Mutual labels:  dataset
facebook-data-extraction
Experiences in extracting data from Facebook with these 3 methods: Facebook Graph API, Automation tools, DevTools Console
Stars: ✭ 81 (+575%)
Mutual labels:  facebook-data
VRTK.Tutorials.OculusIntegration
Prefabs and code for use with the Oculus Integration Unity Package
Stars: ✭ 26 (+116.67%)
Mutual labels:  obsolete
AASecondaryScreen
[Deprecated] · Approachable implementation of iOS AirPlay-Mirroring using Swift.
Stars: ✭ 40 (+233.33%)
Mutual labels:  obsolete
HAR
Recognize one of six human activities such as standing, sitting, and walking using a Softmax Classifier trained on mobile phone sensor data.
Stars: ✭ 18 (+50%)
Mutual labels:  dataset
recurrent-defocus-deblurring-synth-dual-pixel
Reference github repository for the paper "Learning to Reduce Defocus Blur by Realistically Modeling Dual-Pixel Data". We propose a procedure to generate realistic DP data synthetically. Our synthesis approach mimics the optical image formation found on DP sensors and can be applied to virtual scenes rendered with standard computer software. Lev…
Stars: ✭ 30 (+150%)
Mutual labels:  dataset

[DEPRECATED] pull_facebook_data_for_good

GitHub Actions (Tests) codecov


[DEPRECATED]

This library has been deprecated by changes to the portal for downloading data from Facebook Data for Good and enhanced security mechanisms in the new download portal. The recommended method for downloading data is from the newly available "Partner Portal". This library is compatible with the previous "Geoinsights Portal" and will no longer be maintained.


Imitate an API for downloading data from Facebook Data for Good.

This library uses selenium webdriver to imitate the behaviour of an API for downloading the full timeseries of a data collection.

This library is developed and tested in Python 3.8.

Disclaimer: This download routine will only work for those with access to the Facebook Geoinsights platform, and will only function for datasets to which the user has been granted access. This tool is not developed by or associated with Facebook, it is simply a utility to automate downloading data from the Geoinsights platform.

Installation

From a clone:

To develop this project locally, clone it onto your machine:

git clone https://github.com/hamishgibbs/pull_facebook_data_for_good.git

Enter the project directory:

cd pull_facebook_data_for_good

Install the package with:

pip install .

From GitHub:

To install the package directly from GitHub run:

pip install git+https://github.com/hamishgibbs/pull_facebook_data_for_good.git

Usage

Currently functional for TileMovement and TilePopulation datasets only.

Use the CLI from the directory where you would like data to be downloaded:

cd path/to/downloaded/data

The CLI follows the format:

pull_fb --dataset_name --area

For example, to pull the TileMovement dataset for Britain:

pull_fb --dataset_name TileMovement --area Britain

or:

pull_fb --d TileMovement --a Britain

The country name must exactly match the name stored in the .config file. For multi-word names, each word will be separated by '_'. ie. New_Zealand

For a full API reference, please see the Reference.

Please Note:

If the .config file is missing variables for a given dataset, please alter the .config file and open a pull request to share with others.

Chrome Web Driver

To download data, this library relies on selenium and ChromeDriver.

This requires a chromedriver executable which can be downloaded here. Make sure that your Chrome version is the same as your chromedriver version.

pull_facebook_data_for_good assumes that the chromedriver executable is located at Applications/chromedriver. To supply a different path, use the argument --driver_path or -driver from the command line.

Credentials

Credentials must be input manually on each download.

Credentials are not stored on your computer and are passed directly to the Facebook login page by the web driver.

Reference

--dataset_name (-d)

Name of the data collection to be downloaded (i.e. "TileMovement", "TilePopulation").

--area (-a)

Name of the area of the data collection (i.e. "Britain").

--outdir (-o)

Directory where datasets will be downloaded (default: current directory - os.getcwd()).

--end_date (-e)

Dataset end date (default: datetime.datetime.now()).

--frequency (-f)

Dataset update frequency in hours (default: 8).

--driver_path (-driver)

Path to ChromeDriver (see download options here).

--config_path (-config)

Path to .config file (default: config in remote repo. Also accepts local paths).

--username (-user)

Facebook username (or registered email address). To run without prompting for login credentials.

--password (-pass)

Facebook password. To run without prompting for login credentials.

--driver_flags (-driver_flags)

Flags passed to chromedriver (allows multiple flags). Flags are passed with selenium.webdriver.ChromeOptions.add_argument.

--driver_prefs (-driver_prefs)

Preferences passed to chromedriver as dict. Preferences are passed with selenium.webdriver.ChromeOptions.add_experimental_option.

Tests

This project is tested with tox.

To run unit tests:

tox

Contributions

Issues:

To request a feature or report an issue with this tool, please open an issue.

Adding a dataset:

Dataset attributes are stored in the .config file.

Each time you use the library, pull_facebook_data_for_good will look for dataset configuration variables here unless you specify a path to another .config file.

To add the ability to download another dataset, alter the .config file with two pieces of information:

  1. The dataset id, embedded in the url of the Geoinsights download page. For example, the dataset ID for the collection stored at https://www.facebook.com/geoinsights-portal/downloads/?id=243071640406689 is 243071640406689.

  2. The date origin of the dataset, the earliest date of data publication, in the format: year_month_day(_hour). i.e. 2020_01_01_00.

Please open a pull request to share the config variables for a new dataset with everyone.

Other contributions:

Other contributions are welcome.

Please look for open issues with the Help Wanted tag.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].