Zotero Integration

In case this might be useful to anyone, I just finished putting together a version 0.0.1 of a Zotero integration for Fibery! Zotero is a reference manager (for keeping track of academic papers). It’s useful to synchronize Zotero with Fibery so that you can keep track of where information came from and know which papers to cite for what.

What I’ve got so far is:

  1. A template for how to hold information about papers and authors: Zotero
  2. A python script that uses the fibery API and the Zotero API to sync data from a selected Zotero library to Fibery: GitHub - emilydolson/zotero-fibery-sync: Tool for syncing data between Zotero and Fibery.

It’s currently very bare bones, but suggestions and contributions are welcome!

10 Likes

Looks great! Thanks for sharing that :slight_smile:

1 Like

Very cool! I don’t use Zotero currently, but know many people that do. And I’m encouraged seeing uses of the API like this. :clap:

1 Like

Hi! This looks great. I have clicked the Zotero link above (first one) and see that it automatically created a Zotero app in my Fibery, with two databases: Literature, and Authors.
I don’t understand what to do next though to get it to pull the info through from my Zotero (which I have opened). Once I click the link (second one), then what do I do? I know nothing about Python or any coding. Thanks! Laura

Hi! I’ve actually written an updated Zotero integration. I haven’t posted about it yet because I haven’t gotten around to adding a couple finishing touches, but it’s substantially more polished than this one was. The way to make this one work would be to manually run the Python script, which is a pain, especially if you don’t know much Python or coding.

The new version uses Fibery’s new integration API to plug in much more seamlessly. You can use it by clicking on the “Integrate” button in one of your databases and then clicking “Add custom app”. That will bring you to a page with a box to enter a URL. You can enter this one: https://zotero-fibery-sync-api-production.up.railway.app/. Then it will bring you to a page to set-up the integration, just like other fibery integrations. You’ll need your Zotero API key there, but that should be it.

Let me know if you run into any bugs! No promises that I’ll be able to fix them soon (this is very much a side project mostly for my own benefit), but I will if I can.

1 Like

Amazing! Thank you so much!

Thanks! I am trying to set up the integration but got this error message “Response code 404 (Not Found)”

Here are the steps I took:

  1. Created private key on Zotero account setting page.
  2. Put the private key into the personal token field.
  3. I then copied the userID number on the API page to the library ID field in the configuration.

Did I make any mistakes? Thanks for helping and it’s awesome to integrate Zotero with Fibery.

Oh, I think I see the problem. When I wrote this, I was assuming it would be used with group libraries rather than individual libraries. I assume your library is an individual one? (i.e. it just belongs to you, not a Zotero group?).

I have added a configuration setting to let the user indicate whether the library belongs to an individual or a group. Go to “configuration”, make the “group library” checkbox is not checked, and then try syncing again and see if it works.

Hi there, thanks so much. In Fibery when I am configuring the integration,
I have unchecked ‘Group Library’ but that greys out the ‘Next’ button.

This should be fixed now!

(in case anyone is curious - turns out the problem is that boolean configuration settings should always be marked as optional, otherwise they are required to be set to true)

Thanks for your amazing responsiveness! Your fix worked, and I got through to the ‘Sync now’ button.
However now I am getting an error code: " Response code 403 (Forbidden)"

Hmm, that sounds like it’s probably an authentication problem.

A couple questions:

  • Are you using token-based or public authentication?
  • If you’re using public, is the library that you’re accessing public?
  • If you’re using token-based, did you generate the token through here: https://www.zotero.org/settings/keys/new and make sure it has the “Allow library access” box checked at a minimum (checking the others will enable more features, although I haven’t done much with notes yet).
  • I assume that this is not a group library, and is instead your personal user library. Which means that for the library id in the configuration, you should enter the UserID listed here: https://www.zotero.org/settings/keys. Is that what you did?

I am also having the same error message even with all the steps you mentioned done (have allow library access, and use UserID with group ID unchecked, etc).

Ah, I see the problem. I believe the authentication should be fixed now!

Okay, this conversation inspired me to finally put the finishing touches on this integration. Apologies if you tried to use it while it was down for maintenance over the last couple days. It should be pretty smooth, now (although let me know if you encounter further problems). I also took this opportunity to write up some actual documentation: GitHub - emilydolson/zotero-fibery-sync-api: A new and improved version of zotero-fibery-sync.

1 Like

Thank you very much! Great work!

1 Like

I couldn’t make it work, the template link and the API link both didn’t work :frowning:

How can the current version be installed?

Thank you in advance

By the API link, do you mean https://zotero-fibery-sync-api-production.up.railway.app/? That is the current version, and it can be installed as described here. In what way did it not work? What happened when you tried to use it?

I too tried to use the integration, and failed :cry:
I got an error “Response code 500 (Internal Server Error)” so it’s pretty hard to debug beyond that.

Thanks for trying it! I have added more checks on the configuration validation and better error messages when they fail. If you delete your existing user configuration and set up a new one it should tell you if you are using invalid library ids or API Tokens.

From digging through the error logs, I think that your errors were both caused by using the wrong library ID (which, in this case, is your user id because you are using your individual libraries). A confusing thing about the zotero API is that your userID is not the same thing as your username. Instead, it is a sequence of numbers, which you can find at https://www.zotero.org/settings/keys (where its described as “‘Your userID for use in API calls’”). I have added clearer documentation about this on the set-up page.