2011-08-30 69 views
1

我在我的應用程序一個UIWebView,我「M加載我的應用程序的Facebook的個人資料。我在Facebook上使用Facebook的單點登錄(Graph API)。我使用我的應用程序在後臺在Safari中登錄Facebook。但是當我在應用程序Web視圖中嘗試loadmy遊戲配置文件時,仍然可以看到「登錄」和「註冊」按鈕。 我嘗試設置cookie,主文檔URL和相對URL,但沒有用。 我這裏也將在這裏我的代碼,Facebook頁面中的UIWebView

NSURL *url = [NSURL URLWithString:@"http://www.facebook.com/myapp" relativeToURL:[NSURL URLWithString:@"http://login.facebook.com"]]; 
    NSMutableURLRequest *request = nil; 

    if(url) 
     request = [NSMutableURLRequest requestWithURL:url]; 

    NSArray * availableCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"http://login.facebook.com"]]; 
    NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:availableCookies]; 
    if(request) 
    { 
     [request setHTTPShouldHandleCookies:YES]; 
     [request setMainDocumentURL:[NSURL URLWithString:@"http://login.facebook.com"]]; 
     [request setAllHTTPHeaderFields:headers];//login.facebook.com 
     [mWebView loadRequest:request]; 
    } 

回答

1

可能是運行到我的答案描述此頁面上的情況:

Facebook iOS SDK not storing cookies for access

+0

非常感謝您的回覆。這意味着我們無法獲取Facebook的cookies。 – YPK

+0

據我所知,在iOs上,您無法獲取Facebook應用程序正在使用的Cookie或移動Safari正在使用的Cookie。如果您在未打開其他兩個(例如,如果它們不可用)的情況下獲得訪問令牌,則Cookie將位於您的應用的本地,您可以使用它們。可以稍微修改Facebook iOS SDK來強制這種情況。但是,這樣做意味着您放棄了官方Facebook應用用戶的單點登錄。 – giff

+0

這不會啓用對facebook.com cookie的惡意使用嗎?應用程序開發人員可能似乎要求用戶「用facebook登錄」,在登錄成功時捕獲facebook.com cookie並使用它們代表用戶行事。我在這裏錯過了什麼嗎? – Esteban