This project is aimed to help javascript developers use the AFP API ApiCore.
It provides authentication, searching for documents function, and online news product.
This package is available both for NodeJS and browsers. That's why two versions are available on the ./dist
directory.
Read the API documentation, and ask for an API Key and credentials.
npm install --save afp-apicore-sdk
const ApiCore = require('afp-apicore-sdk')
// OR using import
import ApiCore from 'afp-apicore-sdk'
<script src="./dist/afp-apicore-sdk.umd.js"></script>
// Initialize the API
const apicore = new ApiCore({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
saveToken: token => {
// You can eventually save the token to be used later
console.log(token)
}
})
// Search for latest documents
apicore
.authenticate({
username: 'YOUR_USERNAME',
password: 'YOUR_PASSWORD'
})
.then(() => apicore.search())
.then(({ documents }) => {
console.log(documents)
})
// Get a specific document
apicore
.get('A_SPECIFIC_UNO')
.then(document => {
console.log(document)
})
// Look for similar documents
apicore
.mlt('A_SPECIFIC_UNO')
.then(({ documents }) => {
console.log(documents)
})
// Display the most used slugs
apicore
.list('slug')
.then(({ keywords }) => {
console.log(keywords)
})
The above request use default parameters stored in ./src/default-search-params.js
You can pass your own parameters to the search function, that will overide the defaults :
apicore.search({
products: ['news'],
langs: ['fr'],
urgencies: [1, 2, 3, 4],
query: 'french politics',
size: 10,
dateFrom: '2012-01-01',
dateTo: 'now',
sortField: 'published',
sortOrder: 'desc'
})
The query parameter can be used to look precisely for a field (title:Macron
) and may include logical parameters (Macron OR Merkel
, Macron AND NOT Merkel
, title:(Macron OR Merkel) AND country:fra
).
Apicore have a service to send notification to a subscribed external service like mail or http endpoint.
To use it
let notification = new ApiCoreNotificationCenter(apicore)
notificationCenter.registerService({
name: 'my-service-notification',
type: 'mail',
datas: {
address: 'nobody@nowhere.com'
}
}).then(uno => {
console.log(`service created, uno: ${uno}`)
const dontDisturb = true
let subscription = notificationCenter.buildSubscription({
langs: 'fr',
urgencies: 2,
classes: 'text'
}, dontDisturb, {
startTime: '22:30:00',
endTime: '07:00:00',
tz: 'Europe/Paris'
})
notificationCenter.addSubscription('sample-subscription', 'my-service-notification', subscription).then(uno => {
console.log(`subscription created, uno: ${uno}`)
}).catch(e => {
console.error(e)
})
}).catch(e => {
console.error(e)
})
Clone the repository, then npm install
Build and minify your work for browsers and node with npm run build
Just npm test
to execute all tests in ./tests
You will need some environment variables in a .env file :
APICORE_BASE_URL=
APICORE_API_KEY=
APICORE_CLIENT_ID=
APICORE_CLIENT_SECRET=
APICORE_USERNAME=
APICORE_PASSWORD=
APICORE_CUSTOM_AUTH_URL=https://
- Microbundle - Building machine
- TypeScript - Typescript
- Jules Bonnard - Initial work
- Fred78290 - Apicore integration
This project is licensed under the MIT License - see the LICENSE.md file for details