Bitly API: batch handling clicks endpoint - api

I am using the Bitly API to track clicks of Bitly links posted on my network. At the moment I have to track them one by one. In the bitly docs I have read that the best practice is one of making a batch call to the /clicks endpoint. However in the specific docs about the clicks endpoint, nothing is mentioned about batch processing.
Batch Processing The Bitly API does not support shortening more than
one long URL with a single API call. However, up to 15 URLs can be
handled in one API call using the /v3/lookup, /v3/expand and
/v3/clicks endpoints.
Nowhere in the Bitly documentation I can find any example to use batch processing. I did some tries myself, but none worked.
https://api-ssl.bitly.com/v3/link/clicks?access_token=XXXXXXXXXXXX&format=json&link=http%3A//vrt.nu/kijkuniversiteitvanvlaanderen&link=https%3A%2F%2Fbuff.ly%2F2AooMAX
https://api-ssl.bitly.com/v3/link/clicks?access_token=XXXXXXXXXXXX&format=json&link=http%3A//vrt.nu/kijkuniversiteitvanvlaanderen,link=https%3A%2F%2Fbuff.ly%2F2AooMAX
I hope you can help me find the solution.
Thank you and best regards,
Kevin

The Best practices in bitly.com states /v3/clicks instead of /v3/link/clicks. I guess /v3/link/clicks does not support batch process.
I tried links, link[], duplicate link in /v3/link/clicks. All do not work.
While /v3/clicks supports duplicate shortUrl.
WARNING: /v3/clicks in deprecated list, it will be deprecated but the official website does not state when it will be deprecated.
Hope it help.
reference: https://dev.bitly.com/best_practices.html
reference: https://dev.bitly.com/deprecated.html#v3_clicks

Related

Synology FileStation API

Hi I am trying to synology api to download a file, it seems that the API documentation is outdated,
I successfuly login and logut using the API,
but when I tried to use this api call
http://myds.com:5000/webapi/entry.cgi?api=SYNO.FileStation.Info&version=1&method=getinfo
the response sends error 103, "Method do not exists".
According with the documentation, first, you have to retrive the cgi path,in my case is "entry.cgi".
then you know that part of the api direction
/webapi/?api=&version=&method=[&][&_sid=]
According with the error 103 the (in this case is getinfo) doesn't exists, but the documentation tells other thing.. and it's driving me crazy
https://global.download.synology.com/download/Document/Software/DeveloperGuide/Package/FileStation/All/enu/Synology_File_Station_API_Guide.pdf
Someone has used Synology api recently? I need to figure out how to use the SYNO.FileStation.Download api call.
I'm afraid you will need to look into the code of the filestation php files.
Here are some impressions of how this was done for the PhotoStation:
https://gist.github.com/anthonydahanne/4583444
https://blog.jbowen.dev/synology/photostation/getting-started/get-api-info/
Similar to PhotoStation I would first search for the info-method to check what the API is supposed to offer.
I just happened to come across your thread, have you tried viewing the APIs available on your Diskstation? You can do that by calling
http://<YourDiskstationURL:Port>/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&quer%20y=all
I have a function that looks like the successor to the download function:
{"maxVersion":2,"minVersion":1,"path":"entry.cgi","requestFormat":"JSON"}
,"SYNO.FileStation.Download":
In the API-documentation Synology suggests to check whether a specific API is available or if it has changed.

LinkedIn API Changes

Our LinkedIn API calls started failing. Even the simplest /v1/prople/~ calls started erroring with This resource is no longer available under v1 APIs.
So we're trying to migrate stuff using the new /v2 way, but somehow it seems not to be working. For example (and after requesting a token with the new scopes), a simple request to /v2/me fails to return the fields we need (amongst others, headline and location). When asking explicitly for these fields, we're told that we don't have access to them - even tho the token was generated using the r_basicprofile r_liteprofile r_emailaddress scopes.
We've tried numerous combinations and variations of asking for certain fields, projections, formats, etc from the Microsoft docs - with no avail and we're wondering whether the /v2 API is actually something functional - is there anyone successful using it, and if so, how?
A sample CURL request with an obfuscated Bearer would be a good way for us to understand what we're doing wrong - but it seems that even the simplest requests verbatim from the docs just fail.
EDIT: After some research, it looks like Microsoft changed their versioned API behavior without being consistent in the docs. Some docs point to r_liteprofile and some others to r_basicprofile as the default way to go now without being "Linkedin Partners". We were previously requesting r_emailaddress too and the headline and location parts of the r_basicprofile bits were used in our code in many different places.
These were two problems:
Some of the fields are removed from v1 (headline, email, location etc),
Most of the fields requested are not available in v2 without special scopes, but these scopes are very poorly documented as being part of a "LinkedIn Partner" program our app has to be accepted in before we can now use them.
The basic answer to this question is that LinkedIn (Microsoft) made backward-incompatible changes to their API.

Endpoint with Google Flex env

There is bit of a confusion, wondering if somebody can help me with this.
Here is an example which is a year old and uses goapp with polymer and endpoint
https://github.com/googlesamples/cloud-polymer-go
Here is a recent example using gcloud
https://github.com/GoogleCloudPlatform/golang-samples/tree/master/appengine_flexible/endpoints
Both are different as google changed its approach.
As per second example, I am able to create endpoint functions which uses json for input and output. However there are 2 problems
1st. It is throwing error if I put functions in different file under same package. It works when I run go run .go. but then I dont understand how app.yaml come into picture. I think this url /_ah/spi/. should work
2nd. I am using postman app to check the request and response from endpoint. Is there a better way? I thought google does provide a platform to test endpoint.
Is there any example which implements examples similar to 1st one with new libraries?
looking forward for your help. Thanks.

What does "consume an API" mean?

Here is an excerpt from an assignment I am currently doing:
Build a dummy app that:
Contains a REST API that operates over a single resource.
Contains a Backbone client that consumes that API and can list, show, create, update, and remove that resource.
My understanding was that the term "consume" implies total coverage of the API's exposed ressources. However, the assignment says "consumes that API and can [CRUD] that resource".
Is that sentence redundant or is my understanding of the term wrong?
(Bonus question: why searching Google for this question returns countless language-specific tutorials for "consuming an API" but none explain what the term actually means?).
To consume an API means to basically use any part of it from your application.
Consuming an API here means creating a client which can send requests to the API that you build.
It appears that you need to create and API which can handle Create, retrieve, update and delete (CRUD) of a resource. For instance if your REST api is to create a blog, your API should handle CRUD functions for the object/resource blogpost.
POST - Create a blog post
GET - Retrieve a blog post
PUT - Update a blog post
DELETE - Delete a blog post.
It is about the direction of the app's interaction with API - it either provides an API, or consumes it, so there are providers and consumers of API, and this is just a less general and ambiguous term than 'using'.
Simply consuming an API means using it in your application.
For, e.g., GET request to https://someapi/Users will give you all the users.
You need to request this URL https://someapi/Users to get all the users and then you can use it into your application.
I always think about Albert Einstein's quote of "If you can’t explain it to a six year old, you don’t understand it yourself." when someone asks a question that you might take for granted due to technical experience you have on a subject.
I think the following medium.com article does an excellent job explaining it: How do you explain API to a 5-year-old?
simply means : using the API.
You can do it with HTTP method (GET, POST, PUT, DELETE..) using something like Postman (Tool) or maybe you have a client app/library that calls these methods implicitly.

Spotify API get Related Artists

Is there a way to get a list of related artists through the spotify api. Like the small list that displays in the actual program?
Would be very useful if so, but I am not so sure
Cheers
Yes, it's available through libspotify. There's a SPArtistBrowse class that contains a lot of metadata, including the related artists. Check out the
CocoaLibSpotify comes with a documentation package, where you can find more details on what's included: https://github.com/spotify/cocoalibspotify.
Do note that it's currently extremely slow to load an entire SPArtistBrowse object. I'm assuming it's got something to do with libspotify loading it all in one chunk and on the main thread (?). From what I know, Spotify are suppose to remedy that in an upcoming version of libspotify, though.
Get an artist's related artists is now available through the Spotify Web API.
GET https://api.spotify.com/v1/artists/{id}/related-artists is the format.
https://api.spotify.com/v1/artists/43ZHCT0cAZBISjO8DG9PnE/related-artists is an example request.
For more information, see the API documentation.
There is also a JSFiddle demo app.
Definitely! All you need is the "artist_id" and the SpotifyPublicAPI can return a list of the related artists. You don't need an access_token at all.
You can easily test the API call here on RapidAPI. I've specifically linked you to the getArtistsRelatedArtists endpoint. Rapid will provide you with a code snippet you can copy and paste directly into your code to make the call.
Here is an example testing the API call using Beyonce's artist_id:
Here is a sample code snippet provided by RapidAPI wth Beyonce's artist_id passed as a parameter: