Facebook 문서를 많이 읽었지만 세션 객체의 역할에 대해서는 상당히 혼란 스럽습니다. 예를 들어, 방법 :iPhone 용 Facebook Connect의 세션 객체에 대한 혼동
session = [FBSession sessionForApplication:myApiKey secret:myAppSecret delegate:self];
은 내가 아무것도하기 위해 대리인 콜백 기다릴 필요가있을 때 아마, 나에게 반환되는 세션 객체로 무엇을 해야하는 거?
두 번째로 ... 이전 실행 중에 사용자가 내 계정에 액세스하도록 허용 한 경우 내 Facebook 앱에 연결할 수 있도록 세션 객체에 대한 참조를 얻는 방법 상태 등? 문서에는 [세션 이력서]가 언급되어 있지만 그 세션 참조가 어디에서 왔는지는 밝히지 않았습니다. ([[FBSession session] resume] 호출은 컴파일되지만 작동하지 않습니다.)
감사합니다.
당신이 말했듯이 "앱을 시작할 때마다 + sessionForApplication : secret : delegate :로 세션 개체를 만든 다음 [session resume]을 호출해야합니다." 내 질문 : 유효한 세션이이 메서드 또는 대리자에 전달 된 세션 개체의 반환 값이 있습니까? 그것이 이전의 경우 왜 대리인이 필요합니까? (델리게이트가 충돌을 일으키기 때문에 nil을 전달합니다.) 후자라면 반환 된 세션 객체의 포인트는 무엇입니까? 감사. –
둘 다 같은 대상이므로 똑같이 유효합니다. 델리게이트 메소드가 델리게이트 객체를 매개 변수로 포함하여 프로그래머가 델리게이트 메시지가 어떤 객체인지 식별 할 수 있도록하는 것이 일반적입니다. 귀하의 질문에 관해서는 "왜 대리인이 필요합니까?": 세션 생성은 로그인과 동일하지 않기 때문에 세션 객체를 만든 후에 FBLoginDialog를 호출 한 다음 FBSession이 대리인을 사용할 것입니다 메서드를 사용하여 사용자가 실제로 로그인했을 때 알려줍니다. 그 시점에서 세션을 계속 사용할 수 있습니다. –
감사합니다 ...하지만 사용자가 이미 로그인했는지 어떻게 알 수 있습니까? 대화 상자에 대화 상자를 표시 할 필요는 없습니다. 페이스 북 대화 상자가 매번 나타나지 않게하고 싶습니다. (사용자가 이미 로그인 한 상태에서 FBDialog를 호출하면 열려 있고 닫히고주의가 산만 해집니다.) –