gbv / orcid-jskos
JSKOS wrapper to the public ORCID API
Installs: 36
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 7
Forks: 0
Open Issues: 2
Type:project
Requires
- gbv/jskos: ^0.3.4
- gbv/jskos-http: ^0.3
- php-http/client-implementation: ^1.0
Requires (Dev)
- php-http/curl-client: ^1.7
- php-http/guzzle6-adapter: ^1.1
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:
- http://localhost:8080/?notation=0000-0002-2997-7611
- http://localhost:8080/?uri=http://orcid.org/0000-0002-2997-7611
- http://localhost:8080/?search=Dawn%20Wright
Webservice via Apache webserver
-
Run
composer install
to download dependencies into directoryvendor
-
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
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).