Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flickr/flickr-sdk
Almost certainly the best Flickr API client in the world for node and the browser
https://github.com/flickr/flickr-sdk
api client flickr flickr-api flickr-sdk javascript json oauth photos rest sdk
Last synced: 5 days ago
JSON representation
Almost certainly the best Flickr API client in the world for node and the browser
- Host: GitHub
- URL: https://github.com/flickr/flickr-sdk
- Owner: flickr
- License: mit
- Created: 2016-04-19T17:03:20.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2024-10-09T17:03:08.000Z (3 months ago)
- Last Synced: 2024-12-14T17:02:59.326Z (12 days ago)
- Topics: api, client, flickr, flickr-api, flickr-sdk, javascript, json, oauth, photos, rest, sdk
- Language: TypeScript
- Homepage: https://www.flickr.com/services/api
- Size: 1.12 MB
- Stars: 132
- Watchers: 28
- Forks: 29
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# flickr-sdk
Almost certainly the best Flickr API client in the world for node and the browser
This SDK provides methods and type definitions for all methods listed on https://www.flickr.com/services/api/
To use this SDK, sign up for an API key [here][api key]
## install
```
$ npm install flickr-sdk
```## quickstart
#### Make a Flickr API call
```js
import { createFlickr } from "flickr-sdk"const { flickr } = createFlickr("")
const res = await flickr("flickr.photos.getInfo", {
photo_id: '12345',
})
```#### Upload a photo
```js
import { createFlickr } from "flickr-sdk"
import { resolve } from "node:path"const { upload } = createFlickr({
consumerKey: "",
consumerSecret: "",
oauthToken: "",
oauthTokenSecret: "",
})const id = await upload(resolve("example.png"), {
title: "Works on MY machine!",
})
```## auth
The Flickr SDK currently supports the following auth methods:
#### API Key
This is the simplest way to use the SDK. Just provide your API key as a string:
```js
const { flickr } = createFlickr("")
```
#### OAuth 1.0OAuth lets users grant your application access and then you may act on their
behalf. The OAuth flow is described [here][oauth].```js
const { upload } = createFlickr({
consumerKey: "",
consumerSecret: "",
oauthToken: "",
oauthTokenSecret: "",
})
```> 💡 Use `examples/oauth.mjs` to quickly set up an OAuth flow and obtain a
> set of credentials## migrating from previous versions
Previous versions of this SDK depended on [superagent][superagent] for http
requests. This version of the SDK uses node's native `fetch` instead, so you now
only receive the response body back from an API call. This means **the return
value of an API call will only be the response body, not a superagent Request**Migrating existing code looks like this:
```js
// old
const res = await flickr.test.login()
console.log(res.body)// new
const body = await flickr('flickr.test.login', {})
console.log(body)
```## advanced
#### configuring fetch
```js
import { createFlickr, FetchTransport } from 'flickr-sdk'const transport = new FetchTransport({
headers: {
'user-agent': 'foo',
}
})const { flickr } = createFlickr('', transport)
```#### testing
```js
import { createFlickr, MockTransport, NullAuth } from 'flickr-sdk'
import * as assert from 'node:assert'// mock transport returns the response you pass in the constructor
const transport = new MockTransport({
stat: 'ok',
foo: 'bar'
})// null auth does nothing
const auth = NullAuth()const { flickr } = createFlickr(auth, transport)
// makes no network request
const res = await flickr('flickr.photos.getInfo', {
photo_id: '12345',
})assert.deepStrictEqual(res, { stat: 'ok', foo: 'bar' })
```[api key]: https://www.flickr.com/services/apps/create/
[oauth]: https://www.flickr.com/services/api/auth.oauth.html
[superagent]: https://github.com/ladjs/superagent/