DellContact=(emailcontact) => {
let {xhttp}=this.DbConn('DELETE','.json?orderBy="email"&equalTo="' + emailcontact + '"');
xhttp.send();
}
DbConn (method, addon){
let xhttp = new XMLHttpRequest();
let url = "https://phonebook-496ff-default-rtdb.firebaseio.com/Contacts" + addon;
xhttp.open(method,url,true);
xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
return {xhttp};
}
hello, im trying to delete the specific data from firebase by comparing the JSON value named "email" with the value emailcontact. i get a bad request 400. its something with the request syntax i think, because with GET/POST it works.
firebaseURL/Contact.json?orderBy="email"&equalTo="abc#gmail.com" <-- This is the request that sent
Any suggestions ?
Firebase Realtime Database doesn't support update or delete queries. To delete a node, you need to know its exact path.
So you'll need to:
Execute a GET for the query to determine the results.
Then loop over the results in your application code.
Execute a DELETE request for each individual result.
Related
I am trying to use a POST command in deluge to recall a document. When I make the call I get back a no file found (I have verified the id is correct).
The format should come out like this: POST https://sign.zoho.com/api/v1/requests/[Request ID]/recall
https://www.zoho.com/sign/api/#recall-document
What am I doing incorrect?
//Get Zoho Request ID
resp = Sign_ID.toLong();
//add recall command
data = resp + "/recall";
// JSON
response = invokeUrl
[
url: "https://sign.zoho.com/api/v1/requests/"
type: POST
parameters: data.toString()
];
info "Attempting to recall waiver..." + response;
Verified Sign_ID is returning correct value
Verified correct API call
Verified error code
Other than what #ZohoCoder have mentioned.
From the documentation, it seems what you have done is almost right.
// Get Zoho Request ID
resp = Sign_ID.toLong();
// use a variable for the URL of the request
urlRequest = "https://sign.zoho.com/api/v1/requests/" + resp + "/recall";
// JSON
response = invokeUrl
[
url: urlRequest
type: POST
];
info "Attempting to recall waiver..." + response;
First timer when it comes to connecting to API. I'm trying to pull data from Toggl using my API token but I can't get credentials working. I tried to replicate the method by Chris Webb (https://blog.crossjoin.co.uk/2014/03/26/working-with-web-services-in-power-query/) but I can't get it working. Here's my M code:
let
Source = Web.Contents(
"https://toggl.com/reports/api/v2/details?workspace_id=xxxxx&client=xxxxxx6&billable=yes&user_agent=xxxxxxx",
[
Query=[ #"filter"="", #"orderBy"=""],
ApiKeyName="api-token"
])
in
Source
After that I'm inputting my API Token into Web API method in Access Web content windows but I get an error that credentials could not be authenticated. Here's Toggl API specification:
https://github.com/toggl/toggl_api_docs/blob/master/reports.md
Web.Contents function receives two parameters: url + options
Inside options, you define the headers and the api_key, and other queryable properties, such as:
let
baseUrl = "https://toggl.com/",
// the token part can vary depending on the requisites of the API
accessToken = "Bearer" & "insert api token here"
options = [
Headers = [Authorization = accessToken, #"Content-Type" =
"application/Json"], RelativePath ="reports/api/v2/details", Query =
[workspace_id=xxxxx, client=xxxxxx6 , billable=yes, user_agent=xxxxxxx]
]
Source = Web.Contents(baseUrl, options)
// since Web.Contents() doesn't parse the binaries it fetches, you must use another
// function to see if the data was retreived, based on the datatype of the data
parsedData = Json.Document(Source)
in
parsedData
The baseUrl is the smallest url that works and never changes;
The RelativePath is the next part of the url before the first "?".
The Query record is where you define all the attributes to query as a record.
This is usually the format, but check the documentation of the API you're querying to see if it is similar.
I am using Angular4 with TypeScript version 2.2.2
My web app is running fine when I call JSON with Filters but my NativeScript app fails when I call the Filter Values as an Object but works fine when I call filter values as a string.
Error Response with status: 200 for URL: null
THIS WORKS
https://domainname.com/api/v1/searchevents?token=057001a78b8a7e5f38aaf8a682c05c414de4eb20&filter=text&search=upcoming
If the filter value and search value is STRING it works whereas if they are objects as below, it does not work
THIS DOES NOT WORK
https://api.domainname.com/api/v1/searchevents?token=057001a78b8a7e5f38aaf8a682c05c414de4eb20&filter={"limit":"12","skip":"0"}&search={"search":"","latitude":"","longitude":"","categories":"","address":"","type":"upcoming"}
The Code I used is below
getData(serverUrl, type, skip_limit) {
console.log(serverUrl);
let headers = this.createRequestHeader();
let token_value = localStorage.getItem('access_token')
let url;
var filter;
filter = '{"limit":"10","skip":"0"}'
url = this.apiUrl + serverUrl + '?token=' + token_value + '&filter=' + filter
return this.http.get(url, { headers: headers })
.map(res => res.json());
}
The URL as formed above for the API is fine and works fine. Yet the error comes Error Response with status: 200 for URL: null
CAN ANYONE HELP ME SOLVE THIS?
Looks like the issue is the "filter" values are of different type and from what you mentioned as what worked, your service is expecting a string and not an object/array. So it fails to send the proper response when it gets one. With an object in the URL, you may have to rewrite the service to read it as an object (parse the two attributes and get them individually)
To make it simple, you can make these two as two different variables in the URL. like below,
https://api.domainName.in/api/v1/oauth/token?limit=10&skip=0
Be more precise in whats happening in your question,
1) Log the exact URL and post it in the question. No one can guess what goes in "text" in your first URL.
2) Your URL which you mentioned as worked have "token" as part of path, but in the code, its a variable which will have a dynamic value from "token_value".
3) Post your service code. Especially the signature and input parsing part.
Got the solution:
All you have to do is encode the Filter and Search Parameters if it is an Object or Array using Typescript encodeURI()
var filter = '{"limit":"12","skip":"0"}'
var search = '{"search":"","latitude":"","longitude":"","categories":"","address":"","type":"upcoming"}'
var encoded_filter = encodeURI(filter);
var encoded_search = encodeURI(search);
url = this.apiUrl+serverUrl+'?token='+token_value+'&filter='+encoded_filter+'&search='+encoded_search
I am new to nodejs as well as developing.
I am trying to get a set of data bat from a nutrition site in JSON format. If I formulate the url with my app and api keys along with criteria to paste into the browser I get a JSON data ok. When I try to send a POST request as the site asks for when the request comes back it says it cannot find the url. What it is doing is attaching ':443' to the end of the host url and like I said coming back as an error:
Error: getaddrinfo ENOTFOUND https://api.nutritionix.com/v1_1/search https://api.nutritionix.com/v1_1/search:443
What I would like to do is after the end of the url is append the 'postData'.
Here is my code:
var https = require('https');
var querystring = require('querystring');
var postData = { // Nutrionix required JSON formt
"appId":"MY_APP_KEY",
"appKey":"MY_API_KEY",
"query": "Lentils",
"fields": ["item_name", "nf_calories", "nf_serving_size_qty", "nf_serving_size_unit"],
"sort":{
"field":"score",
"order":"desc"
},
"filters":{
"item_type":"2"
}
};
console.log("This is header dta" + postData);
postBody = querystring.stringify(postData);
var post_options = {
host:"https://api.nutritionix.com/v1_1/search",
"port":"443",
method:"post",
"path":"/",
headers:{"Content-Type":"application/json",
'Content-Length': postBody.length
}
}
console.log(post_options);
var request = https.request(post_options,function(response){
return response;
});
I also am passing this data into the dev HTTP add-on in Chrome and getting back the proper response.
Any help would be appreciated.
Can you please take a look at this documentation?
It seems that you don't need to mention HTTPS
Take the port off, 443 is the default for HTTPS.
I found out that when we enter admin page of my SOLR server there is such a request:
http://localhost:8983/solr/documents/admin/luke?wt=json&show=index&numTerms=0
This request is getting some basic informations about index such as last modified etc. I want to create query using SOLRJ but I can't. My code is very simple:
SolrClient server = new HttpSolrClient("http://localhost:8983/solr/documents/admin");
SolrQuery solrQuery = new SolrQuery("luke?wt=json&show=index&numTerms=0");
QueryResponse response = null;
SolrParams solrParams = solrQuery;
response = server.query(solrParams);
logger.error("PING: " + response.getElapsedTime());
for(SolrDocument doc: response.getResults())
{
for(String key: doc.keySet())
{
logger.error("KEY: "+key+" VAL: "+doc.get(key));
}
}
logger.error("TEST after");
I got error Problem accessing /solr/docs/admin/select wich isn't something strange. Should I use simple GET and parse JSON or there is some other way to use SOLRJ for this one ?
I guess the correct url for accessing the solr end point should be:
SolrClient server = new HttpSolrClient("http://localhost:8983/solr/documents");
Assuming the core name for your solr setup is documents.
The default handler is /select handler.