簡體   English   中英

Instagram API實現在iOS中失敗

[英]Instagram API Implementation failed in iOS

我正在我的iOS應用中實現Instagram API示例。 我在Instagram Website注冊了我的應用程序。 在項目中實施之后,我得到了client id並對其進行了secret 但是我不能分享我的照片。

我的代碼是:

- (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];
}

我的項目中顯示以下錯誤日志:

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}

該錯誤非常明顯: ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8無法加載URL ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8

嘗試構造和解析URL時存在一些基本問題。 花一點時間重新閱讀NSURLNSURLComponents的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM