Generate JWT for Apple Music API with online editor - ios

I read the full documentation https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/AppleMusicWebServicesReference/SetUpWebServices.html#//apple_ref/doc/uid/TP40017625-CH2-SW1.
I generated JWT with kid,iss , iat exp. But when I hit apple music api
with
"Bearer eyJhbGciOiJFUzI1NiIsImtpZCI6Iko4UTJNTFA5RjMifQ.eyJpYXQiOjE1MTE0Mzc5ODgsImV4cCI6MTUxNjcwODM4OCwiaXNzIjoiN0Y0Ujk4WDRNVCJ9.iPFxiHc475spn2AVmO8-Q2bGOM_Rz5OqhAb-sMQ2cXQlGcbx6pfZaTpjI0r6vAaQnqeoFb8fNvVobjtiC2eyzw" header authorization.
API is https://api.music.apple.com/v1/catalog/us/search?term=khalid&types=albums
I am getting the following response header
{ URL: https://api.music.apple.com/v1/catalog/us/search?term=khalid&types=albums } { status code: 401, headers {
Connection = close;
"Content-Type" = "text/plain; charset=UTF-8";
Date = "Fri, 24 Nov 2017 09:21:29 GMT";
} })
Please help.
Thanks in advance.

Related

Alamofire 3.5.1: download stopped when in airplane mode

We are experiencing an issue downloading file, when we activate airplane mode.
We are using the following Manager configuration:
let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(self.sessionIdentifier)
configuration.HTTPMaximumConnectionsPerHost = 1
let manager = Alamofire.Manager(configuration: configuration)
The expected behaviour is that when you activate the airplane mode, the response handler is not called and the download is still active and waiting for the internet connection to be active again. But the response is called and we get the following information:
Error:
Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo={NSLocalizedDescription=unsupported URL}
Data:
nil
Response:
status code: 200, headers {
"Accept-Ranges" = bytes;
"Cache-Control" = "max-age=604800";
"Content-Length" = 138310665;
"Content-Type" = "video/mp4";
Date = "Thu, 20 Oct 2016 13:09:19 GMT";
Etag = "\"3168233889\"";
Expires = "Thu, 27 Oct 2016 13:09:19 GMT";
"Last-Modified" = "Fri, 25 Sep 2015 09:38:30 GMT";
Server = "ECAcc (fcn/40BD)";
"X-Cache" = HIT;
And the original request
Notice that the error does not contain, even resume data, which I think it should.
And also this is not the case when we test it in the simulator and stop the internet connection.
Any help will be much appreciated!

Getting Header as a response of API

I'am using a REST API which returns some JSON block as a response.Here my request fulfills successfully but it returns some header block as a response instead of JSON. What does this code block means ?
P.S : I'm using NSURLSessionDataTask for hitting API.
{
status code: 200, headers {
"Access-Control-Allow-Credentials" = true;
"Access-Control-Allow-Headers" = "origin, content-type, accept, authorization";
"Access-Control-Allow-Methods" = "GET, POST, DELETE, PUT";
"Access-Control-Allow-Origin" = "*";
"Content-Type" = "application/json;charset=utf-8";
Date = "Thu, 08 Sep 2016 08:19:00 GMT";
Server = "Apache-Coyote/1.1";
"Transfer-Encoding" = Id
}
header properties are your servis properties. for example;
Access-Control-Allow-Methods -> Which can call Methods. You can call get, post, delete and put function or services in your services project.
Content-Type -> Services return object type.
I hope that helps.

Error in Multi Part upload Objective c Google Drive Rest API

I am making a multi part upload request to Google drive api in Objective c and this is my request parameter
url:https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart
{
Authorization = "Bearer token here";
"Content-Length" = 1259175;
"Content-Type" = "multipart/related; boundary=1F538E72-A1C7-4D64-A90C-7286FADE6E92-4313-000022A3405EDE24";
}
i get the error response as follows with status code 400
{
"Alternate-Protocol" = "443:quic,p=0.02";
"Content-Length" = 44;
"Content-Type" = "text/html; charset=UTF-8";
Date = "Fri, 09 Jan 2015 14:35:35 GMT";
Server = "UploadServer (\"Built on Dec 19 2014 10:24:45 (1419013485)\")";
}
And it reports
"Invalid multipart request with 0 mime parts." {NSLocalizedDescription=Invalid multipart request with 0 mime parts.}
Can anyone tell me why i am facing this issue.

Instagram API, AFNetworking 2.0 iOS client 400 error

I haven't changed anything in my app and my code seems to generate the proper URL with access token attached, but I am getting a 400 error bad request for the past day. It doesn't seem as if Instagram has changed the endpoint. Can someone help me decipher the error log to see if there is any usable info here to help me debug? Access Token x'd out.
Failure Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: bad request (400)"
UserInfo=0x9261450 {NSErrorFailingURLKey=https://api.instagram.com/v1/locations/search?lat=37.785834&lng=-122.406417&distance=50&access_token=XXXX, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x92627d0> { URL: https://api.instagram.com/v1/locations/search?lat=37.785834&lng=-122.406417&distance=50&access_token=XXXX }
{ status code: 400, headers {
"Cache-Control" = "private, no-cache, no-store, must-revalidate";
Connection = "keep-alive";
"Content-Language" = en;
"Content-Type" = "application/json; charset=utf-8";
Date = "Tue, 26 Aug 2014 05:19:53 GMT";
Expires = "Sat, 01 Jan 2000 00:00:00 GMT";
Pragma = "no-cache";
Server = nginx;
"Set-Cookie" = "csrftoken=26b1980509fc8303e630689c2d483074; expires=Tue, 25-Aug-2015 05:19:53 GMT; Max-Age=31449600; Path=/, ccode=US; Path=/";
"Transfer-Encoding" = Identity;
Vary = "Cookie, Accept-Language";
"X-Ratelimit-Limit" = 5000;
"X-Ratelimit-Remaining" = 4999;
} }, NSLocalizedDescription=Request failed: bad request (400)}

MGTwitterEngine statusesReceived not firing

A few time ago I've developed an iOS app with MGTwitterEngine and XML parsing option.
Since Twitter updated the API to 1.1, seems to be that all messages must be called with JSON format.
After a long nightmare to integrate YAJL library with MGTwitterEngine, my program makes a Succeeded Request but the statusesReceived delegate method is not fired.
I've checked if the delegated is properly assigned, and everything is correct. After launch the HTTP request I get the response OK but not any message.
Here an example of the call I made:
INFO -> Twitter URL: https://api.twitter.com/1.1/statuses/user_timeline.json?since_id=1&screen_name=CFarmaceutico&count=50
And here the response:
MGTwitterEngine: (200) [no error]:
{
"Cache-Control" = "no-cache, no-store, must-revalidate, pre-check=0, post-check=0";
"Content-Encoding" = gzip;
"Content-Length" = 10778;
"Content-Type" = "application/json;charset=utf-8";
Date = "Thu, 28 Nov 2013 11:57:33 GMT";
Expires = "Tue, 31 Mar 1981 05:00:00 GMT";
"Last-Modified" = "Thu, 28 Nov 2013 11:57:33 GMT";
Pragma = "no-cache";
Server = tfe;
"Set-Cookie" = "lang=es, guest_id=v1%3A138563985309026395; Domain=.twitter.com; Path=/; Expires=Sat, 28-Nov-2015 11:57:33 UTC";
Status = "200 OK";
"Strict-Transport-Security" = "max-age=631138519";
"x-access-level" = "read-write-directmessages";
"x-frame-options" = SAMEORIGIN;
"x-rate-limit-limit" = 180;
"x-rate-limit-remaining" = 166;
"x-rate-limit-reset" = 1385639983;
"x-transaction" = da0b638eef7ffe43;
"x-xss-protection" = "1; mode=block";
}
2013-11-28 12:57:34.025 Otsuka On[60073:a0b] Request Suceeded: 59CA5086-8AA9-4632-978B-2B9F2334D704
But the statusesReceived method is not called anymore.
Any idea?
Thanks.
no idea - but MGTwitterEngine does not support API 1.1, and when API 1.1 was released, we tried hard to get MGTwitterEngine working - and failed. Eventually we converted our app to FHSTwitterEngine - and it works fine since then. It was relatively straightforward process so I would strongly recommend you to do the same. It will take you less time than fixing bugs in MGTwitterEngine.

Resources