fellowshipone
v0.3.4
Published
Fellowship One (F1) API wrapper for Node.js
Downloads
24
Readme
node-fellowshipone
A Fellowship One API wrapper for Node.js
In very early stages.
Allows you to:
- use a username/password to easily get OAuth tokens for dealing with Fellowship One (i.e. 2nd-party credentials-based authentication)
- interface with the F1 API in a slightly-simplified way
See passport-fellowshipone for 3rd-party OAuth authentication.
Install
$ npm install fellowshipone
Usage
Getting a token
var f1 = new F1({
apiURL: 'http://mychurch.staging.fellowshiponeapi.com/v1',
username: 'joe',
password: 'joespassword',
oauth_credentials: {
consumer_key: '123',
consumer_secret: '456789'
}
})
f1.get_token(function (err, oauth_credentials, userURL) {
request.get(userURL, { oauth: oauth_credentials, json: true }, function (err, res, body) {
console.log('hi there, %s %s', body.firstName, body.lastName)
})
})
Getting a token - alternate method
var config = {
apiURL: 'http://mychurch.staging.fellowshiponeapi.com/v1',
username: 'joe',
password: 'joespassword',
oauth_credentials: {
consumer_key: '123',
consumer_secret: '456789'
}
}
var f1 = new F1(config)
// this method is useful for integrating with other APIs
f1.authenticate(function (err) {
console.log('got tokens: %s/%s', config.oauth_credentials.token,
config.oauth_credentials.token_secret)
console.log('user URL is %s', config.userURL)
})
Searching for Households
var f1 = new F1(config)
f1.authenticate(function (err) {
var households = new F1.Households(f1)
households.search({
searchFor: 'Joe Smith'
}, function (err, found) {
var count = found.results['@count']
console.log('Found %d households', count)
if (count > 0) {
console.log('Households: %j', found.results.household)
}
})
})
API Support
We're aiming to support all of the F1 API by v1.0.0. The (more-or-less) current support state is:
- [ ] Accounts
- People API Realm
- [x] Households
- [x] HouseholdMemberTypes
- [x] People
- [ ] People Attributes
- [ ] People Images
- [x] Addresses
- [x] AddressTypes
- [ ] Attributes
- [ ] AttributeGroups
- [x] Communications
- [x] CommunicationTypes
- [ ] Denominations
- [ ] Occupations
- [ ] Schools
- [x] Statuses
- [ ] SubStatuses
- [ ] Requirements
- [ ] Requirement Statuses
- [ ] Background Check Statuses
- [ ] People Requirements
- [ ] Requirement Documents
- [x] Households
- Giving API Realm
- not yet
- Groups API Realm
- not yet
- Events API Realm
- not yet
Tests
$ npm install --dev
$ make test
License
Copyright (c) 2014-2015 Dave Henderson