【问题标题】:Instagram API Implementation failed in iOSInstagram API 实施在 iOS 中失败
【发布时间】:2014-11-18 11:13:21
【问题描述】:

我正在我的iOS 应用程序中实施Instagram API 示例。我在Instagram Website 注册了我的应用程序。我得到了client idsecret 之后我在我的项目中实施的所有内容。但我无法分享我的照片。

我的代码是:

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

【问题讨论】:

    标签: ios objective-c iphone instagram instagram-api


    【解决方案1】:

    错误非常明确:webview 无法加载 URL ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8

    您尝试构建和解析 URL 的方式存在根本问题。花点时间重新查看NSURLNSURLComponents 的文档。

    【讨论】:

    • 您好@Mattt 我不知道如何拆分 url 路径组件。能详细解释一下吗
    猜你喜欢
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多