n-recommendations-client

2.0.0 • Public • Published

n-recommendations-client

This client provides client-side and server-side interfaces for calling the Recommendations API.

If you are putting recommendations onto a highly-cached page, you should not use the server-side version.

Within the app calling this library, you will need to provide a RECOMMENDATIONS_API_KEY environmental variable. Contact the myFT team to get a key.

Install

$ npm install --save n-recommendations-client

Usage

Using the Next-API

If you want recommendations with their data expanded beyond content ID and title, you should use the Next API. For this call, use the user ID instead of the session token. Next API will check the session token matches the user ID.

tbc

Server-side Implementation

const recommendationsClient = require('n-recommendations-client');
 
recommedationsClient.behavioural(secureSessionToken, uuid, options)
    .then(results)
    .catch(errHandler)

Client-side Implementation

First set up a route in your application to act as a proxy. We do this so that we don't expose keys in our client-side XMLHttpRequest calls.

// in app.js or similar
const recommendationsClient = require('n-recommendations-client');
 
// :type is important
app.request('/your/proxy/:type/:uuid', recommendationsClient.proxy);

Then set up your call like so:

fetch('/your/proxy/behavioural/someuuid', {
    headers:{
        'ft-s-session': 'user-secure-session-token'
    }
})
    .then(fetchres.json)
    .then(result) //articles data is in result.recommendations.articles
    .catch(err);
 

You don't have to use fetchres, but you will need something to read the body data into JSON.

You can then hit your endpoint e.g. /your/proxy/behavioural/someuuid?count=5. The request should have either a header called ft-s-session or a cookie called FTSession_s containing the user's secure session token.

Options

Options all have defaults but can be

  • count: n (how many articles to get back)
  • recency: n (how many days back to cover)
  • sort: rel|pop|date
  • contentid: somecontentid (option to add in article ID as an extra filter for results)

Readme

Keywords

none

Package Sidebar

Install

npm i n-recommendations-client

Weekly Downloads

1

Version

2.0.0

License

MIT

Last publish

Collaborators

  • robertboulton
  • seraph2000
  • hamza.samih
  • notlee
  • emmalewis
  • aendra
  • the-ft
  • rowanmanning
  • chee
  • alexwilson