Giter VIP home page Giter VIP logo

delicious-api's Introduction

Delicious logo Delicious API Documentation

This document and the APIs herein are subject to change at any time. We will version the API, but may deprecate early versions aggressively.

RSS and JSON feeds

Documentation for feeds of public or private bookmarks can be found here: https://delicious.com/rss

Keep in Mind

  • Please wait at least one second between HTTP queries, or you are likely to get automatically throttled. If you are releasing a library to access the API, you must do this.
  • Please watch for 500 or 999 errors and back-off appropriately. It means that you have been throttled.
  • Please set your User-Agent to something identifiable. The default identifiers like Java/1.4.3 or lwp-perl etc tend to get banned from time to time.
  • If you are releasing software or a service for other people to use, your software or service must not add any links without a user’s explicit direction. Likewise, you must not modify any urls except under the user’s explicit direction.
  • API calls of Objects returns as an Xml object.

Authentication

All /v1 APIs now use OAuth 2.0 for authentication.

Objects

Feedback

Contact [email protected] if you have any question with using our APIs.

delicious-api's People

Contributors

jamesxv7 avatar lbt05 avatar neddenriep avatar peoplemerge avatar sparanoid avatar sunng87 avatar syoichi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

delicious-api's Issues

Tags with spaces causing all kind of problems

I'm developing a win 8 delicious app and i noticed that using spaces in tag names is causing problems. I'm calling the rename uri like this:
https://api.del.icio.us/v1/tags/rename?old=ms+sharepoint&new=ms-sharepoint
This should rename "ms sharepoint" to "ms-sharepoint". In some cases it seems to work but for this specific task. Same is if i try to rename "ms sql". The return of the url is:

Any idea what to do?

The api is returning through the tags url all tags (also those with spaces). I try to find these tags in the posts im screwed because tags are delivered seperated by space. So for my example i'm getting back:
ms sql ms sharepoint
Thats really bad. The "posts/get" api call can use comma as a seperater but this doesn't help because there is no way to get all date.

Can you please help? At the moment i'm trying to recommend my users to not use spaces. At the moment i try to detect the "bad tags" and rename them, but at the moment without much luck.

Ciao Marco

Adding bookmarks with non-ASCII characters

I try to execute the following API to add bookmark with Chinese characters (wih url encoded):

https://api.delicious.com/v1/posts/add?url=http://blog.csdn.net/liuhe688/article/details/6532519&description=%e8%af%a6%e8%a7%a3Android%e4%b8%adAsyncTask%e7%9a%84%e4%bd%bf%e7%94%a8+-+scott%27s
+blog+-+%e5%8d%9a%e5%ae%a2%e9%a2%91%e9%81%93+-+CSDN.NET&shared=no&tags=AsyncTask%2cAndroid%2c%e5%ad%a6%e4%b9%a0&replace=no&dt=2013-10-26T00:00:00Z

But the server returned "500", and the bookmark didn't instered.

get real name

is it possible to get the real name for a user?
i would use it for two pursoses: display the name so the user knows he/she is logged in. and verify the user credentials. right now i have to get all the tags/posts to check if username and password are correct. or is there a way to achieve this that i missed?

Problem with refuse in authorize dialog

In the authorization process when the API request access to the data, the Refuse option does nothing. A response should be trigger in order to properly implement the rejection in a third party application. Right now any callback logic never will know if the authorization was rejected.

Typo under Change Avatar

There is text under the image for changing the avatar. It currently reads "Avatar (Maxium File Size: 2 MB)"
'Maxium' should be 'Maximum'.

Summary information about a URL

This page mentions that we should be able to get information about a URL: https://delicious.com/rss
But unfortunately, the feed isn't working. And this API doesn't support this feature yet.

How should we proceed to get these datas?

Thanks in advance
Brice

Passwords with Special Characters Can't Log In

I have a test user with a password that looks something like this:

^FwF*5J1)V5j1+8/D3x:4,2=

I am able to log in via the web, but not via API. Here are some things I've tried...

  1. curl -u 'mytestusername:^FwF*5J1)V5j1+8/D3x:4,2=' https://api.del.icio.us/v1/posts/get

  2. curl https://mytestusername:^FwF*5J1)V5j1+8/D3x:4,[email protected]/v1/posts/get

  3. curl https://mytestusername:%5EFwF%2A5J1%29V5j1%2B8%2FD3x%3A4%2C2%[email protected]/v1/posts/get

  4. curl -u 'mytestusername:%5EFwF%2A5J1%29V5j1%2B8%2FD3x%3A4%2C2%3D' https://api.del.icio.us/v1/posts/get

  5. In Chrome, open https://api.del.iciou.us/v1/posts/get, and paste in the u/p

I get result code="access denied" with all of these.

If I change my password to something like 'delicious123', everything works fine.

Am I doing something wrong? Or is there a bug in the API?

/v1/posts/all API call concatenates all tags into single string

Hi,

When calling the /v1/posts/all API, all the tags relating to that post appear to be concatenated into a single string (seperated by spaces) and set as the value of the tag attribute.

For example if we tagged a post with foo bar and baz the API would return tag="foo bar baz"

This makes it difficult to correctly parse the tags correctly if there are multiple tags which contain spaces.

Would it be possible for the API to return a tags child element, which contains the tags as seperate elements, within the post element?

For example:

<post ... >
    <tags>
        <tag>foo bar</tag>
        <tag>baz</tag>
    </tags>
</post>

Thanks!

oAuth2 Support?

There was a StackOverflow question back in June 2012 that mentioned support was coming for oAuth 2.0 in a few months. Are there any plans to move beyond basic authentication? I'd rather not ask my users for their credentials, and have to store them.

Setting replace=yes has unpredictable effects on posts/add

If I set replace=yes for posts/add, Delicious is sometimes adding a new bookmark even if an existing bookmark with the specified URL already exists in my collection, and sometimes throws a 500 with no error message.

URL that adds a new bookmark: http://www.edudemic.com/6-ways-students-can-collaborate-with-ipads/

URL that throws a 500: http://www.zeldman.com/2014/03/09/evolving-responsive-web-design/?utm_content=bufferfdcaa&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

AJAX XHR support for Basic Auth

Hi,

Does the current API support Basic Authentication using AJAX and XMLHttpRequest() calls ?

I am attempting this with javascript inside the Firefox browser:

function SendAPI(username,passwd,api) {
var req=new XMLHttpRequest();
req.onreadystatechange=onReadyStateChangeHandler();
console.log("SendAPI: GET:"+api);
req.open("GET", api, true, username, passwd);
req.send(null);
return(req.responseText);
}

What I see on Firefox's javascript console is this:

SendAPI: GET:https://api.del.icio.us/v1/posts/recent
NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

Why is the API call denied ? Is it the way I am calling the API with XHR ?

I have successfully made API calls with Basic Auth using curl from bash. So I know Basic Auth is supported. By why the rejection with XHR ?

Unable to detect deletions and edits with `v1/posts/update`

Hi,

The v1/posts/update function is supposed to be used before re-fetching all the links with v1/posts/all or /v1/posts/all?hashes.

I've tested v1/posts/update and found, that the response will not change after having edited or deleted an existing link (unless editing or deleting the most recently added link).

This will lead to inconsistency (when trusting the update function) until the user adds a new link.

My suggestion would be to let v1/posts/update always return the newest modification timestamp or the timestamp of the last deletion (which could be a single field updated on every deletion).

Or maybe I just missed something important. Let me know.
Thanks.

OAuth authorization fails

Hitting /api/v1/oauth/auth returns an error

"READONLY You can't write against a read only slave.; nested exception is redis.clients.jedis.exceptions.JedisDataException: READONLY You can't write against a read only slave."

With the recent changes at delicious, and seeing the number of issues around here, will this api still be supported?

No posts results in no user data either (or: how to get the user name via OAuth?)

Unless I'm missing something :)

If a user is signed in via OAuth (for example) and has some posts, the return result includes the signed in user name. However, if the user has zero posts, then the API returns:

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<result code=\"no bookmarks\"/>

...if a client is using OAuth, the user name is never known for display. I guess that's OK but... you know, sometimes it is there, sometime it ain't ;)

Error Adding Link

Hi,

I'm getting the "error adding link" error when I use the API to add a new bookmark. However, I do not get an explanation on what the actual error is.

Help!

Thanks.

Third-party authentication, e.g. Twitter.

Hi there,

Any documentation on using the Twitter (or Facebook, Google+) authentication results? Delicious presents the user with a sign in page, that's cool, although they have the option of using Twitter (for example) to sign in rather than the user name and password credentials. This differs from the OAuth process documented, like, Delicious is then authenticated so how does a Delicious client then get/use the API with Twitter tokens?

Many thanks!
spaceyjase

URL title not appearing in Delicious

Hi,

I used the following command to add a URL to my account:
curl https://user:[email protected]/v1/posts/add?url=http://timesofindia.indiatimes.com/city/goa/Excise-deparments-online-efforts-reduce-pendency/articleshow/46817719.cms

After about 2 mins, the link appeared on my Del.icio.us account. However, the Title of the web page appears as timesofindia.indiatimes.com. I was expecting the Title to be :
"Excise deparment’s online efforts reduce pendency"

What am I missing?

Thanks

Failed on calling /oauth/token; Got Error 405.

I followed the instructions, and got things working until calling /oauth/token, when I received this error:

HTTP ERROR 405

Problem accessing /api/v1/oauth/token. Reason:

Request method 'GET' not supported

Is it because I am calling from the browser?
Would appreciate any help. Thanks.

Find 'untagged' posts

I was looking for a call to get all untagged items (i.e. all items that don't have any tag applied to) but i can't find it. It would be very useful to me since i deleted a whole old set of tags and now i'd like to reclassify only the untagged links without passing through all of them.

Replace link not working

I tried using /v1/posts/add? with replace=yes and got "done" as respones. however, nothing was changed

Can't get OAuth 2.0 access_token

I'm following the instructions in oauth.md to obtain an access_token for my application.

After obtaining the request_token, I'm trying to get the access_token using the URL provided in the example (i.e. https://avosapi.delicious.com/api/v1/oauth/token?) with the required parameters but I keep receiving the following error:

HTTP ERROR 405
Problem accessing /api/v1/oauth/token. Reason:
Request method 'GET' not supported

Have I missed some detail? Is this the right URL to ask for the access_token?

Missmatch between post counts from /v1/tags/get and /v1/posts/all?tag=NAME

I have some issues renaming and during the investigation i tried to analyse and found out that the data of the diffrent api calls don't match. At the moment i'm sure it is not a "caching" issue. If tested running a powershell against the api se at the end of this text. My test was:

  • Get the tags using the /v1/tags/get url
    • Tag: SharePoint = Count: 268
    • Tag: Development = Count: 118
  • Get the posts for both tags using the /v1/posts/all?tag=NAME url and count the returned xml nodes
    • Posts: SharePoint = Count: 266
    • Posts: Development = Count: 100

Why are the numbers so different? I have about 10 or 15 tags showing this behaviour?

PowerShell 4.0 (Win 8)

$cred = Get-Credential
$req = Invoke-WebRequest -Uri "https://api.del.icio.us/v1/posts/all?tag=sharepoint&tag_separator=comma" -Credential $cred
$xml = [xml]$req.Content
$xml.posts.post.Count
#Result: 266

$reqTag = Invoke-WebRequest -Uri "https://api.del.icio.us/v1/tags/get" -Credential $cred
$xmlTag = [xml]$reqTag.Content
$xmlTag.tags.tag | ? { $_.tag -eq "sharepoint" }
#count                                                       tag
#-----                                                       ---
#268                                                         sharepoint

$req = Invoke-WebRequest -Uri "https://api.del.icio.us/v1/posts/all?tag=development&tag_separator=comma" -Credential $cred
$xml = [xml]$req.Content
$xml.posts.post.Count
#Result: 100

$reqTag = Invoke-WebRequest -Uri "https://api.del.icio.us/v1/tags/get" -Credential $cred
$xmlTag = [xml]$reqTag.Content
$xmlTag.tags.tag | ? { $_.tag -eq "development" }
#count                                                       tag
#-----                                                       ---
#118                                                         development

Broken `tags/rename` and `tags/delete` functions

Hello

Deleting and renaming tags as documented here does not seem to work.

After adding the tag test to some links, I tried the following:

 https://api.del.icio.us/v1/tags/delete?tag=test
 https://api.del.icio.us/v1/tags/rename?old=test&new=newtest

Both returned <result code="done"/> (which is not according to the docs) and did neither rename nor delete the tag.

I also noticed, that no error was returned, when I ommited the parameters, i.e.:

 https://api.del.icio.us/v1/tags/delete
 https://api.del.icio.us/v1/tags/rename

Also returns <result code="done"/>

Throttling doubts

What does this mean?

Please watch for 500 or 999 errors and back-off appropriately. It means that you have been throttled.

It refers to a respnse XML with <result code="500" /> or <result code="999" />? or an HTTP response code?

hash/url to HTML edit page ?

From a hash and/or url ? is it possible to get a link to the HTML page of my link on delicious.com to edit my bookmark ?

something like :

http://delicous.com/:user/:bookmark/:hash

?

Undocumented Features & Inconsistencies

Hi

I recently found, that some API functions behave differently than documented. Some of the inconsistencies may be minor, but I listed them anyway for completeness. The (imo) more important problems have a bold font in the description.

These are the inconsistencies that I've found:

posts/delete

Description API docs real
delete by md5 hash not documented ?md5=...

posts/all

Description API docs real
privacy status not documented redundant: private="no" shared="yes"
empty attributes are ommited in example extended=""

posts/add

Description API docs real
Description argument required optional

posts/get

Description API docs real
others attribute in response yes in example no
undocumented keys in attributes of <posts> none bookmark_key="some_hash" inbox_key="some_other_hash" network_key="more_hash"
privacy status not documented redundant: private="no" shared="yes"

posts/recent

Description API docs real
privacy status not documented redundant: private="no" shared="yes"

posts/update [FIXED]

Description API docs real
Response for empty inbox inboxnew="0" inboxnew=""
Undocumented attributes in response - code="200" message="success"

posts/dates

Description API docs real
tag(s) attr. in <dates> tag= tags=

api.delicious.com to api.del.icio.us redirect breaks spaces in parameters

Hi,

If using the API with api.delicious.com, I am getting redirected to api.del.icio.us for actual handling of the calls. This works fine most of the time, however, if there are arguments with spaces in them (such as a tag name) it will get changed in a way that will generate an error.

For example
https://api.delicious.com/v1/posts/all?tag=mortage%20house&tag_separator=comma
redirects to
https://api.del.icio.us/v1/posts/all?red=api&tag=mortage+house&tag_separator=comma
and the former url doesn't work.

As a workaround I switched to using api.del.icio.us directly. If possible, please reconfigure redirect in a different way.

Thanks.

md5 calculation does not match

What is the MD5 implementation you're using to hash the href field from a post?
I cannot understand why my hashes are not matching your data.

                            Mine    Yours
766efaf951a21e30f5a6128256441879 == 766efaf951a21e30f5a6128256441879
http://stackoverflow.com/questions/202013/clickonce-and-isolatedstorage
b06c50f709e6003e2480799ba714917b != ed677fde4b8d36f7debfca524164211a
http://www.codemag.com/article/0611041
47b87d2e715ac0fcef2702dbe6bfd331 != 7aab575f1b8d39be0d7de56175538cfc
https://msdn.microsoft.com/en-us/library/bb397895.aspx
61dd26c913a23edf5850806db6597728 == 61dd26c913a23edf5850806db6597728
http://stackoverflow.com/questions/16864617/updating-the-build-definition-for-many-tfs-projects
9e29a21e93a62e4d03a58e52735d3dcd != f46fb6e130ee6bfa1d1f1a7e274879c4
http://www.codeproject.com/Articles/5724/Understanding-NET-Code-Access-Security#Tools

I have cross-checked my computed value with a 3rd party which matches my computed hash. http://www.miraclesalad.com/webtools/md5.php

api.del.icio.us returning 503 error

In the past couple of days, api.del.icio.us has been returning a 503 error:

Failed to load resource: the server responded with a status of 503 (Service Unavailable: Back-end server is at capacity)

JSON response instead of XML

Is there a way to get JSON repsonses instead of XML? Any planes to support this on the here documentet set of API? There is already JSON if we access the oAuth stuff, but all the traditional API is only returning XML.

Thank you.

OAuth2 redirect should handle existing URL parameters

If the redirect already has a query string, e.g. https://example.com/?someparam=somevalue

and I construct the authorize URL as https://delicious.com/auth/authorize?client_id=a_client_id&redirect=https%3A%2F%2Fexample.com%2F%3Fsomeparam%3Dsomevalue, I'm redirected to https://example.com/?someparam=somevalue?code=a_code rather than the correct value of https://example.com/?someparam=somevalue&code=a_code

Bonus bug: redirect is a required parameter in the documentation, but the authorize page still loads without it.

URLs of all the apis not documented very well

I'm looking through your "new" oauth implementation and did some sample code. As in my current application (I started at a time where this github page did not exist). During my sample code i had to jump between several URLs and I'm not sure if I use the right one. Here are my findings:

grant_type should use authorization_code rather than code

In this link:https://tools.ietf.org/html/rfc6749#section-4.1.3
grand_type should equals authorization_code rather than code.
In this link: https://github.com/SciDevs/delicious-api/blob/master/api/oauth.md#parameters-1
It's wrong about "code={request_token} (optional) — required when grant_type=code"
I use standard oauth2.0 client can't get access token, unless i change grant_type=code.

After a couple of day. I found this link: https://developers.google.com/identity/protocols/OAuth2WebServer
2015-05-21 4 44 28

Recommendation for a better Refuse behavior

If the user rejects access to my application, it will be possible to redirect to the callback URL with some parameters summarizing the error:

http://your-application.com/callback?error=access_denied
  &error_description=The+user+has+denied+your+application+access.
  &error_uri=https://delicious.com/auth/authorize/%23access-denied
  &state=xyz

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.