"Unexpected Zotero API method"


I had Zotero Import working fine, but for some reason, it no longer wants to recognize feed URLs. I'm not aware of any changes I've made that could cause this.

For example, I give it: https://api.zotero.org/users/134/collections/VZ766RTJ/items

And the plugin says: Unexpected Zotero API method: 'https://api.zotero.org/users/134/collections/VZ766RTJ/items'

This is a surprising response, since putting that into a browser location bar prints the expected Atom output.

Any ideas?


Alright, so I made a little progress with this, but hit another wall.

I looked in the code where the zotero api method gets validated, and I noticed something odd. Here's what I guess is the pattern the plugin looks for to validate a userCollectionItems call:


Maybe it's just me, but that looks like it's only matching for numbers in the Zotero group id's, which is odd since they actually include both letters and numbers.

So I hacked it into this, and got URL's that validate:


It works as far as validating the URL and beginning the import process, but it only makes it as far as one item and then reports "Error," with no other information.

Moreover, in some further testing, I discovered it importing the wrong item. I'm trying to import a sub-sub-sub collection: but instead, it just imports the most recent item at my top level before choking.

Maybe something else in the import processing is also incorrectly expecting collection identifiers to be numeric strings?

Found some similar code in controllers/IndexController.php. Hacked it as well. Now import identifies the correct collection, hits an Error again, but doesn't import anything.

Sorry for the late reply. This is an emergent issue with the Zotero API. The Zotero team recently changed the way they identify items, using alphanumeric instead of numeric keys. This completely breaks the Zotero Import plugin. There are other bugs in the API that need to be worked out, so in the meantime don't use the plugin. We've taken it down from our website and will release an update once it's fixed.

Yeah, I figured it was something like that.

Any ideas on an ETA? I've had to delay an assignment that relied on this plugin, so I'm wondering if I need to keep it on delay mode or just switch the assignment to Plan B.

The Zotero team fixed some of the bugs over the weekend, but one remains and there's no ETA. I recommend Plan B. Sorry for the inconvenience.

Hi Jim,

Thanks for the reply, and it's really not much inconvenience. Reading my earlier reply, it looks like I may have come off a bit grumpier than I meant to. Really, this is just such a kickass plugin, I'm pretty excited about using it!

So, in the meantime, do you have any suggestions for moving data from a Zotero library into a method that Omeka can import? If there's a long way, that would still be pretty manageable, I think.

Right now, my students have all collected data in Zotero, so the ideal situation would be to get it out of there and into Omeka, whatever that entails. Even if it takes several steps (say, export as Dublin Core, convert somehow to CSV, then use CSVImporter), that Plan B is better than doing (redoing, actually) each item manually.

Any ideas?

Another idea would be take the data from the local Zotero directory. Sine they only supply 100 Meg free I gave up syncing to their servers. My own local store is now up to 2 Gig and 2000 articles.

Your idea is a good one. Though I suspect that we'll have the Zotero Import plugin updated by the time you find and implement a working solution. Even so, if you find a way to transform a Zotero export format into compatible CSV, please share your results.


Just checking in -- is there any progress on getting Zotero Import back? I haven't done any experimenting with CSV importer (I really wouldn't know where to start), and the assignment I mentioned earlier is currently just on hold until I can get something figured out.

The Zotero API still has a pretty nasty bug that prevents access to notes on certain libraries. I'm not comfortable releasing an update to the plugin until the Zotero team resolves this, but I'll be updating the SVN trunk to a releasable (but unstable) state within the next week. Though, I don't recommend using the trunk for production sites because there's no guarantee it will work with future releases.

OK, thanks for the update!

Ok, folks, have at it again. Jim worked through the wacky Zotero API to fix the plugin for you.

One residual question: would this download have an effect on any data that I've entered manually into Omeka's Zotero fields from the earlier plug-in? Or is there something I should do to prevent losing any of that data?

Upgrading the plugin will have no affect previously imported items. Any imports you have done prior to the upgrade will be untouched.