2012-02-10 36 views
5

tôi sử dụng hộp thoại Facebook để gửi lên tường theo cách như vậyFacebook vấn đề đăng nhập hộp thoại

[facebook dialog:@"feed" andParams:params andDelegate:self]; 

Nếu người dùng không được đăng nhập trước khi hộp thoại, cửa sổ đăng nhập được xuất hiện trong hộp thoại. Đó là OK, nhưng khi người dùng nhấn Đăng nhập hộp thoại được miễn nhiệm và người dùng phải gọi lại hộp thoại, và sau khi tất cả các bài viết của tôi tin nhắn trên tường của mình. Đó là khá kỳ lạ để buộc hộp thoại cuộc gọi của người dùng hai lần, vì vậy bất cứ ai có thể giúp tôi với vấn đề này?

+0

Tôi có cùng một vấn đề mà tôi không thể tìm thấy câu trả lời. Bạn sẽ nghĩ rằng Facebook SDK khi nó đi đến màn hình đăng nhập sẽ tự động quay trở lại nơi nó đã có nghĩa là sau khi đăng nhập. Tôi đã thử đăng nhập Đăng nhập trước rồi đăng, tuy nhiên nếu bạn hủy đăng nhập, bạn cũng phải loại bỏ hộp thoại bài đăng. – Darren

Trả lời

2

Cách dễ nhất để khắc phục điều này là lưu trữ params của bạn bằng thanh răng. Sau đó, khi FBConnect gọi cho đại biểu của bạn theo số fbDidLogin thì bạn có thể tự động cấp lại cuộc gọi dialog:andParams:andDelegate.

Giải pháp dài hơn và chính xác hơn, là bạn cần tách riêng các bước đăng ký và ủy quyền. Bạn có thể lưu trữ fb.accessToken và ngày hết hạn trong NSUserDefaults, và sau đó gọi lại chúng lần đầu tiên bạn cố gắng truy cập FBConnect. Nếu ngày hết hạn đã qua, sau đó bạn thực hiện cuộc gọi đến authorize:delegate để nhận khóa truy cập mới. Khi fbLogin hoàn tất, sau đó bạn đăng hộp thoại cho người dùng để tiếp tục.

Cách khác, bạn không thể sáng tạo lại bánh xe và kiểm tra ShareKit http://getsharekit.com/ để có giải pháp hoàn chỉnh hơn.

0

Hãy thử mã này được đưa ra trong đó liên kết với câu trả lời rằng cũng có, thay vì mã của bạn "HACBOOK EXAMPLE" do facebook ... Facebook API dialog page showing error in second time and after that .Dont quên để cung cấp cho AppID trong top của viewController của bạn ..

+0

@ user979424 Tôi hy vọng Câu trả lời của tôi sẽ giúp bạn .. Tôi đã có cùng một vấn đề một lần .. Tôi đã xóa mã đó .. Nếu bạn có bất kỳ câu hỏi nào, vui lòng hỏi tôi .. –

+0

là có thể mở hộp thoại đăng nhập để đăng nhập trong facebook thay vì, đăng nhập từ safari trong ứng dụng Hackbook cho iPhone? – Wish

+0

nếu bạn muốn đăng nhập mà không cần safari, sau đó bạn cần phải vô hiệu hóa autari safari trong facebook.h. http://stackoverflow.com/questions/9901740/facebook-api-for-ios/ xem câu trả lời @rob trong liên kết này. –

0

Giải pháp tốt nhất tôi tìm thấy cho vấn đề này là gọi [facebook thoại: @ "feed" andParams: params andDelegate: self] một lần nữa trong (void) dialog: (FBDialog *) dialog didFailWithError: (NSError *) error. Nó được gọi sau khi bạn đăng nhập, nhưng hộp thoại bị loại bỏ.

0

là có thể mở hộp thoại đăng nhập để đăng nhập trong facebook thay vì, đăng nhập từ safari trong ứng dụng Hackbook cho iPhone?

Các vấn đề liên quan