DOAJ API and OJS export

Hi,

Are there any plans or is anyone working with the DOAJ API (https://doaj.org/api/v1/docs)?

At the moment, if I understand correctly, exporting articles to DOAJ is based on creating an XML with the OJS plugin and then uploading that XML file to DOAJ. With the DOAJ API you could probably automate this the same way as with the CrossRef plugin. But is someone already working with this?

Hi @ajnyga,

This is filed for attention in our github issue list:

…however, we haven’t had the time to work on it yet.

Regards,
Alec Smecher
Public Knowledge Project Team

Thanks, forgot to do a search in github.

I will probably look into this during summer. I will let you know if I get results.

1 Like

Was going to inquire if this feature was still being worked on, then read the GitHub thread, and now see it right there in 3.0.2. My post is now just a bunch of high fives!

1 Like

Greetings @ajnyga and @asmecher,

Can you guide me how DOAJ API key is look like?
Do I need to contact DOAJ that they assign this key to our journal?
I don’t see it on our DOAJ home page (our journal has been just included there)

Hi,

  • Go to https://doaj.org/
  • Login
  • After login, you will see three links in the right. The first one is your membership number, the second one “Publisher area” and the third “Logout”. Click the membership number.
  • You should arrive to a page where the API key is available

There is actually a very recent addition that enables cron based article registration to DOAJ. I just tested it a couple of days ago with one of our journals and it worked very well! So OJS now has an fully automatic pipeline to DOAJ :slight_smile:

Thanks.

But there aren’t any API key on page after membership number :confused:
Need to contact DOAJ…

hmm, the problem is that I only have access to two journal accounts. On both of them I can see the key on that page.

There is also a “Generate a API key” button on that page, do you see that?

Nope, there is no such button.

Dear @Vitaliy
You should email them asking for the API key.
Just mention your journal name or id in the mail.

They will reply with API key.
Regards,
@anupent

1 Like

OK. I have received API Key.

After entering it, what time is needed to export articles? On the next cron task?

Hi,

If you have the latest version of the DOAJ export plugin (including these recent changes reload scheduled tasks function for the acron plugin · Issue #2543 · pkp/pkp-lib · GitHub) then yes, the next cron job should export the articles. You can also test the plugin by exporting a single article by hand from Tools => Import/Export => DOAJ => Articles tab. If that works, then the batch run with cron should as well.

But be aware of this unresolved issue DOAJ export is exporting declined articles · Issue #2753 · pkp/pkp-lib · GitHub

1 Like

Greetings @ajnyga and @bozana,

It seems I have managed necessary changes (DOAJ Plugin, PKPAcronPlugin and SQL script).
But I get error 500 when pressing register button
From php logs:

[php7:notice] [pid 30430] [client ...] PHP Fatal error: Uncaught Error: Call to undefined function curl_init() in .../plugins/importexport/doaj/DOAJExportPlugin.inc.php:117\nStack trace:\n#0 .../plugins/importexport/doaj/DOAJExportPlugin.inc.php(176): DOAJExportPlugin->depositXML(Array, Object(Journal), '[{"bibjson":{"j...')\n#1 .../classes/plugins/PubObjectsExportPlugin.inc.php(164): DOAJExportPlugin->executeExportAction(Object(Request), Array, 'article=>doaj-j...', 'exportSubmissio...', 'articles')\n#2 .../plugins/importexport/doaj/DOAJExportPlugin.inc.php(59): PubObjectsExportPlugin->display(Array, Object(Request))\n#3 .../lib/pkp/pages/management/PKPToolsHandler.inc.php(98): DOAJExportPlugin->display(Array, Object(Request))\n#4 .../lib/pkp/classes/core/PKPRouter.inc.php(372): PKPToolsHandler->importexport(Array, Object(Request))\n#5 .../plugins/importexport/doaj/DOAJExportPlugin.inc.php on line 117, referer: .../index.php/psp/management/importexport/plugin/DOAJExportPlugin

So where curl_init() function must be defined?

Hi @Vitaliy,

That’s the PHP CURL module, which will need to be installed on your server.

Regards,
Alec Smecher
Public Knowledge Project Team

1 Like

Thanks, that was the problem. Tests were successful. Will be monitoring cron task.