node-bing-api/README.md

163 lines
4 KiB
Markdown

# Node Bing API
Node.js lib for the Azure Bing Web Search API
## Changelog v2
In order to follow JavaScript best practices and allow the library to
be promisified, the callback function is now the last parameter.
## Installation
````
npm install node-bing-api
````
## Usage
Require the library and initialialize it with your account key:
```js
var Bing = require('node-bing-api')({ accKey: "your-account-key" });
```
#### Web Search:
```js
Bing.web("Pizza", {
top: 10, // Number of results (max 50)
skip: 3, // Skip first 3 results
}, function(error, res, body){
// body has more useful information, but for this example we are just
// printing the first two results
console.log(body.d.results[0]);
console.log(body.d.results[1]);
});
```
#### Composite Search:
```js
Bing.composite("xbox", {
top: 10, // Number of results (max 15 for news, max 50 if other)
skip: 3, // Skip first 3 results
sources: "web+news", //Choises are web+image+video+news+spell
newsSortBy: "Date" //Choices are Date, Relevance
}, function(error, res, body){
console.log(body);
});
```
#### News Search:
```js
Bing.news("xbox", {
top: 10, // Number of results (max 15)
skip: 3, // Skip first 3 results
newsSortBy: "Date", //Choices are: Date, Relevance
newsCategory: "rt_Business" // Choices are:
// rt_Business
// rt_Entertainment
// rt_Health
// rt_Politics
// rt_Sports
// rt_US
// rt_World
// rt_ScienceAndTechnology
newsLocationOverride: "US.WA" // Only for en-US market
}, function(error, res, body){
console.log(body);
});
```
#### Video Search:
```js
Bing.video("monkey vs frog", {
top: 10, // Number of results (max 50)
skip: 3, // Skip first 3 result
videoFilters: {
duration: 'short',
resolution: 'high'
},
videoSortBy: 'Date' // Choices are:
// Date
// Relevance
}, function(error, res, body){
console.log(body);
});
```
#### Images Search:
```js
Bing.images("Ninja Turtles", {skip: 50}, function(error, res, body){
console.log(body);
});
```
Adding filter(s) for the Image Search
```js
Bing.images("Ninja Turtles", {
imageFilters: {
size: 'small',
color: 'monochrome'
}
}, function(error, res, body){
console.log(body);
});
```
Accepted filter values:
* Size:\<Small | Medium | Large\>
* Size:Height:\<*Height*\>
* Size:Width:\<*Width*\>
* Aspect:\<Square | Wide | Tall\>
* Color:\<Color | Monochrome\>
* Style:\<Photo | Graphics\>
* Face:\<Face | Portrait | Other\>
#### Related Search:
```js
Bing.relatedSearch('berlin', {market: 'en-US'}, function (err, res, body) {
var suggestions = body.d.results.map(function(r){ return r.Title; });
console.log(suggestions.join('\n'));
});
```
#### Spelling Suggestions:
```js
Bing.spelling('awsome spell', function (err, res, body) {
console.log(body.d.results[0]); //awesome spell
});
```
#### Specify Market
Getting spanish results:
```js
Bing.images("Ninja Turtles"
, {top: 5, market: 'es-ES'}
, function(error, res, body){
console.log(body);
});
```
[List of Bing Markets](https://msdn.microsoft.com/en-us/library/dd251064.aspx)
#### Adult Filter
```js
Bing.images('Kim Kardashian'
, {market: 'en-US', adult: 'Strict'}
, function(error, res, body){
console.log(body.d.results);
});
```
Accepted values: "Off", "Moderate", "Strict".
*Moderate level should not include results with sexually explicit images
or videos, but may include sexually explicit text.*
## Running Tests
In order to run the tests, the integration tests require to create a `secrets.js` file
from the provided `secrets.js.example` example, and fill it in with a valid access key.
Then just `mocha`.
## License
MIT