gbv/orcid-jskos

JSKOS wrapper to the public ORCID API

0.2.0 2017-09-19 12:36 UTC

README

This repository contains a wrapper written in PHP to access the public ORCID API in JSKOS format via Entity Lookup Microservice API (ELMA).

Background

The Open Researcher and Contributor ID (ORCID) is a code to uniquely identify scientific and other academic authors and contributors. ORCID identifiers are a subset of the International Standard Name Identifier (ISNI) consisting of 16 digits in four groups. The final character may also be an X. The identifier is prefixed by http://orcid.org/ to get an URI. For example:

0000-0002-2997-7611
http://orcid.org/0000-0002-2997-7611

ORCID organization provides a public API to access and search for ORCID profiles. Access to the API requires credentials in form of a "client id" and a "client secret" as decribed at http://support.orcid.org/knowledgebase/articles/343182.

Requirements

Requires the jskos-php PHP library.

You also need client credentials from your ORCID profile to access the ORIC API.

Installation

composer require gbv/jskos-bartoc

This will automatically create composer.json for your project (unless it already exists) and add orcid-jskos as dependency. Composer also generates vendor/autoload.php to get autoloading of all dependencies.

Usage

Use as library

The wrapper can be used as instance of class ORCIDService, a subclass of \JSKOS\Service:

require 'vendor/autoload.php';

$service = new ORCIDService($client_id, $client_secret);

See jskos-php-examples for an example how to use the wrapper as part of a larger PHP application.

Local webservice for testing

To use as server you also need an implementation of Http\Message\ResponseFactory, e.g.

$ composer require php-http/guzzle6-adapter

Locally run the application on port 8080 as following:

$ composer install
$ ORCID_CLIENT_ID=... ORCID_CLIENT_SECRET=... php -S localhost:8080

You can also put credentials into credentials.php as described above.

Given valid credentials, ORCID profiles can be accessed in JSKOS like this:

Webservice via Apache webserver

  1. Run composer install to download dependencies into directory vendor

  2. Add a file credentials.php with client credentials as following:

    <?php
    define('ORCID_CLIENT_ID', '...');
    define('ORCID_CLIENT_SECRET', '...');

You may add a rule to disallow direct access to all except index.php:

Require all denied
<Files index.php>
    Require all granted
</Files>

Webservice at Heroku

  1. Create an app
  2. Configure the app
  3. Deploy the app

In short:

$ heroku create
$ heroku config:set ORCID_CLIENT_ID=...
$ heroku config:set ORCID_CLIENT_SECRET=...
$ git push heroku master

Contributung

Bugs and feature request are tracked on GitHub.

See CONTRIBUTING.md of repository jskos-php for general guidelines.

Author and License

Jakob Voß jakob.voss@gbv.de

orcid-jskos is licensed under the LGPL license (see LICENSE for details).