I'm implementing Instagram API
Sample in my iOS
app. I registered my app in Instagram Website
. I got client id
and secret
everything after that I'm implementing in my project. But I can't share my photos.
My Code is:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.title = @"Instagram Login";
NSString* urlString = [kBaseURL stringByAppendingFormat:kAuthenticationURL,kClientID,kRedirectURI];
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
NSLog(@"%@",urlString);
NSLog(@"%@",request);
if (![UIUtils checkNetworkConnection])
return;
[_webView loadRequest:request];
}
#pragma mark -- WebView Delegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString* urlString = [[request URL] absoluteString];
NSURL *Url = [request URL];
NSArray *UrlParts = [Url pathComponents];
if ([UrlParts count] == 1)
{
NSRange tokenParam = [urlString rangeOfString:kAccessToken];
if (tokenParam.location != NSNotFound)
{
NSString* token = [urlString substringFromIndex: NSMaxRange(tokenParam)];
// If there are more args, don't include them in the token:
NSRange endRange = [token rangeOfString: @"&"];
if (endRange.location != NSNotFound)
token = [token substringToIndex: endRange.location];
if ([token length] > 0 )
{
// call the method to fetch the user's Instagram info using access token
[_gAppData getUserInstagramWithAccessToken:token];
}
}
else
{
DLog(@"rejected case, user denied request");
}
return NO;
}
return YES;
}
- (void) webViewDidStartLoad:(UIWebView *)webView
{
[_gAppDelegate showLoadingView:YES];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[_gAppDelegate showLoadingView:NO];
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
DLog(@"Code : %d \nError : %@",error.code, error.description);
//Error : Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted"
if (error.code == 102)
return;
if (error.code == -1009 || error.code == -1005)
{
// _completion(kNetworkFail,kPleaseCheckYourInternetConnection);
}
else
{
// _completion(kError,error.description);
}
[UIUtils networkFailureMessage];
}
The following Error log show in my project:
headers: (null) }
2014-11-18 16:42:07.128 InstragramSample[376:27732] -[SignInViewController webView:didFailLoadWithError:] [Line 94] Code : 101
Error : Error Domain=WebKitErrorDomain Code=101 "The URL can’t be shown" UserInfo=0x1551cd30 {NSErrorFailingURLKey=ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8, NSErrorFailingURLStringKey=ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8, NSLocalizedDescription=The URL can’t be shown}
2014-11-18 16:42:07.344 InstragramSample[376:27732] -[SignInViewController webView:didFailLoadWithError:] [Line 94] Code : 102
Error : Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted" UserInfo=0x16f38000 {NSErrorFailingURLKey=ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8, NSErrorFailingURLStringKey=ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8, NSLocalizedDescription=Frame load interrupted}
The error is pretty explicit: the webview could not load the URL ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8
.
There are fundamental problems with how you're attempting to construct and parse URLs. Take a moment to revisit the documentation for NSURL
and NSURLComponents
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.