如何在基于PIN的情况下在Nest Thermostat中存储授权码

时间:2015-05-16 01:13:32

标签: ios iphone cocoa-touch firebase nest-api

我正在尝试在我的应用程序中实现Nest Thermostat我可以成功完全创建引脚身份验证代码,但

--->我在存储该针脚认证码时进入,因为在检查条件后是否([[url host] isEqualToString:[redirectURL host]]),

--->如果条件成功则始终条件失败然后我只能存储它并通过使用它获取访问令牌(根据库)

我根据Nest示例代码和库和在线解决方案没有用我正在寻找Picking hands

Plz参考 - 恐惧我的代码

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

        NSURL *url = [request URL];
        NSURL *redirectURL = [[NSURL alloc] initWithString:RedirectURL];

        if ([[url host] isEqualToString:[redirectURL host]])
        {
            NSString *urlResources = [url resourceSpecifier];
            urlResources = [urlResources stringByReplacingOccurrencesOfString:QUESTION_MARK withString:EMPTY_STRING];
            urlResources = [urlResources stringByReplacingOccurrencesOfString:HASHTAG withString:EMPTY_STRING];

            NSArray *urlResourcesArray = [urlResources componentsSeparatedByString:SLASH];

            NSString *urlParamaters = [urlResourcesArray objectAtIndex:([urlResourcesArray count]-1)];

            NSArray *urlParamatersArray = [urlParamaters componentsSeparatedByString:AMPERSAND];
            NSString *keyValue = [urlParamatersArray lastObject];
            NSArray *keyValueArray = [keyValue componentsSeparatedByString:EQUALS];

            if([[keyValueArray objectAtIndex:(0)] isEqualToString:@"code"]) {

                [self.delegate foundAuthorizationCode:[keyValueArray objectAtIndex:1]];

            } else {
                NSLog(@"Error retrieving the authorization code.");
            }
            return NO;
        }
        return YES;
    }

webview显示的引脚只是我能看到的屏幕。在那之后我敲了它。非常需要帮助

1 个答案:

答案 0 :(得分:0)

使用网络基础身份验证并在注册客户端时填写重定向网址,此重定向网址在客户端页面上不应为空,然后一旦您将设备登录凭据输入您的应用程序,它就会自动重定向并提供然后将提供具有该身份验证令牌访问令牌的身份验证令牌,通过使用该访问令牌,您可以获取设备详细信息