OJS v3 ORCID integration & auto-update

After the 2016 ORCID Indonesia workshop, one of the important questions from journal editors are OJS v3 ORCID integration, both technically and financially.

Assuming OJS is properly integrated with Crossref:

  1. Is OJS v3 able to associate a published article’s authors with their individual ORCID IDs? (If not, when?)
  2. If 1) is true, does that mean authors’ ORCID works will be updated automatically? (If not, when?)
  3. If 2) is true, does that happen via Crossref, or directly from OJS to ORCID API?
  4. Assuming it is via Crossref, does it mean no ORCID API token is necessary?
  5. Same question, but for the reviewers: do they get the benefit of having their reviews in OJSv3 automatically reflected in their ORCID profile? (If not, when?)
  6. Can any or all of the above be done in an OJSv3 journal without paying an ORCID institutional membership?
  7. Can any or all of the above be done in an OJSv2 journal? (If so, how?)

Background:
One of the concerns of universities like mine (Institut Teknologi Bandung) is having complete access to all its researchers’ works and activities. One cause of significant work is local journals which are not indexed by Scopus, and some of them don’t even have DOIs. So I’d like to know, if journals are willing to be upgrading OJS and integrating CrossRef and ORCID, whether this will improve the status quo significantly? And if not (yet), when?

Thank you.

ORCID iDs are solicited in OJS 2.4.x and OJS 3.x within the user and author profiles. In both versions, if present in the author’s profile, the ORCID iD will be included in the CrossRef metadata for deposit.

From OJS’s perspective, this deposit happens via the CrossRef API and depends on CrossRef membership (or a similar arrangement, such as EZID). This should enable the ORCID/CrossRef autoupdate for these records, but note that this is a ORCID and CrossRef interaction, not an OJS function. No ORCID API token is needed, as this happens outside of OJS.

If a reviewer is registered with OJS (for version 2.4.x or 3.x), OJS is able to collect an ORCID iD at the user level. This ORCID iD is not integrated with ORCID’s new Peer Review functionality at this time. You’ve caught my attention with it, however. I’m interested in seeing this integration and will try proposing it within the Pitt ULS for development for 2017. To my understanding, this would require an institutional membership.

Just wanted to give some information about peer review on ORCID and potential w/ OJS:

Collecting the iDs of reviewers would not require institutional membership, but posting it to the ORCID records of reviewers (as per question 5) definitely would, much like posting publications to ORCID records would.

There were third party peer review recognition services in the ORCID peer review early adopter programme, which may be something to look into for journals with such concerns.

Thanks @ctgraham and @alainna for the confirmation.

I’m very happy that for authors it seems it’s a solved problem. So that means just needs the journals themselves to configure Crossref and ORCID ID collection properly.

Thanks @alainna for the link to ORCID peer review early adopter programme. What interests me is Publons, as Publons usage is gaining (slow but sure) traction among researchers in Indonesia.

  1. @alainna, can you confirm that Publons ORCID integration is working now? I mean, if a Publons reviewer connects their ORCID, and records his reviews on Publons, will the reviews auto-update themselves on their ORCID profile?

  2. @ctgraham, currently, other than journals already integrated with Publons, how Publons work for OJS journal reviewers is by adding manually and/or emailing review receipts to reviews@publons.com . From https://publons.com/editors/, I don’t see it mention OJS at all, and https://github.com/publons/ojs hasn’t started development. :frowning: What is the current progress/roadmap for OJS-Publons integration? Ideally a reviewer can connect their OJS account to Publons, and then everything auto-updates to Publons and therefore to ORCID (assming @alainna confirmed point 1). This would be a good way for journals who don’t have insitutional membership, to have the benefit of Publons & ORCID integration for reviewers. (also altmetric & impactstory)

    PS. https://publons.com/partner/info/ doesn’t publicly list the pricing plan… But probably there’s a (negotiable?) annual fee?

@hendy Yes, Publons has demonstrated it at the ORCID peer review webinar. You can find out more at their website

Bonus: PKP’s lightning presentation of the OJS ORCID integration

both of these are hosted on Vimeo, so they may not be accessible in all regions. : (

I’ve only heard brief mentions of Publons in the context of an OJS integration, but I’m not aware of any active work by PKP or the development partners on this. The link you supply, however, does look like development has started on an OJS 2.x plugin. You might want to check in with the authors on GitHub for information on their plans. It looks like work is quite current.

Hi @asmecher, @ctgraham,

I am testing ORCID integration now (ORCID Sandbox). And I think, there is something wrong with “Redirect URIs” setting they ask to define for API configuration.
E.g., I set the same URI for application and redirect: “92.***.58.220” (Is it right?).

Now, when I try to register user’s account with ORCID, everything goes fine until I press “Authorize”. Then I am redirected to something like:

http://92.***.58.220/index.php/test1/orcidapi/orcidAuthorize?targetOp=register&params=&code=o8G1v7

…Which cannot be obtained. What am I doing wrong?

The ORCID redirect URI should be your public OJS URL. The way this works is that OJS sends to ORCID a URL to which it wants ORCID to redirect the user after authentication. If that URL is in ORCID’s allowed redirect URLs, ORCID will redirect the user there.

It sounds like ORCID is redirecting you, but that you are unable to connect to the server.

What does your URL look like just before clicking the ORCID link on the OJS registration page?

Hi @ctgraham,

Thanks for the reply! The URL is http://92.***.58.220/index.php/test1/user/register

When you say the page for the redirected URL “cannot be obtained”, what exactly do you see? It is a network error? Is it an internal server error?

Yes, it’s the HTTP Error 500.

Check your error log for the detailed error message, and post it here.

Sorry, but is there a way to get the log from the OJS admin account (back-end)? I do not have any direct access to our logs now.

No, OJS can’t provide access to the server logs. You’ll need your system administrator or hosting provider to intervene if you do not have direct access. In the webserver’s error log, there will be a message (or messages) which correspond to this 500 error.

OK, I’ll have to wait until Monday, we still have holidays here)

Hi @ctgraham,

Sorry for the delay. We’ve managed to overcome the internal server error.
Now it seems to go through the authorization. But it does not synchronize accounts between ORCID and OJS, i.e. the fields are not autocompleted after the authorization.

The error is this:

[Wed Jan 11 13:33:47.366248 2017] [:error] [pid 5455] [client 10..3.1:37462] PHP Notice: Undefined variable: json in /var/www/html/plugins/generic/orcidProfile/pages/OrcidHandler.inc.php on line 66, referer: http://92..58.220/index.php/test1/user/register

This would probably indicate that ORCID returned some sort of failure response in the profile lookup. There isn’t really any use of error checking in the current version:

If the first instance of this error for you is line 66, you’re also back a bit from the current version in this plugin release.

Are you using the ORCID public API, or the ORCID members API for this plugin?

I am using the Member Sandbox API now.

I don’t think this plugin currently supports storing an OAuth scope token for the /read-limited scope (but I could be wrong), so I suspect that the read will depend on the /read-public permission.

Does the user selected for testing have a public ORCID profile? Can you add some code to an else on the if ($info['http_code'] == 200) { condition which would log the http_code and perhaps $result response from the member sandbox API call?

Hi @ctgraham,

I tried to test it on our production server (I tested on the test server before).The same problem here :frowning: