2011-09-26 20 views
7

Một nơi nào đó trên đường đi trong vài tuần qua, việc ủy ​​quyền cuộc gọi Facebook trong iOS không thành công với "Không tìm thấy trang". Điều này xảy ra cho bất kỳ người dùng nào chưa cài đặt ứng dụng hoặc nếu quyền của ứng dụng đã thay đổi và người dùng phải phê duyệt các quyền bổ sung. Điều này xảy ra cho dù ứng dụng Facebook xử lý xác thực người dùng hoặc Safari hoặc hộp thoại bật lên. Tất cả chuyển hướng đến trang "Không tìm thấy trang".Facebook cho phép w/yêu cầu quyền cho phép "Không tìm thấy trang"

Đào thông qua các chương trình gỡ rối, tôi thấy yêu cầu ban đầu URL được (id ứng dụng thay thế "[APP_ID]") cho màn hình đăng nhập:

https://m.facebook.com/dialog/oauth? type = user_agent & display = chạm & redirect_uri = fb [APP_ID]% 3A% 2F% 2Fauthorize & sdk = 2 & phạm vi = USER_LOCATION% 2Cuser_relationships% 2Cemail% 2Cpublish_stream% 2Coffline_access & client_id = [APP_ID]

URL sau được tìm kiếm bởi nỗ lực đăng nhập (tôi giả sử bởi URL mà người dùng không có đủ quyền):

http://www.facebook.com/dialog/permissions.request?_path=permissions.request & APP_ID = [APPID] & redirect_uri = fb [APPID]% 3A% 3F% 3Fauthorize & sdk = 2 & hiển thị = chạm & type = user_agent & fbconnect = 1 & perms = USER_LOCATION% 2Cuser_relationships% 2Cemail% 2Cpublish_stream% 2Coffline_access & sso = iphone-săn & from_login = 1

tôi đã kiểm tra rằng Bundle ID được liệt kê trong Xcode là như nhau như được liệt kê cho cài đặt ứng dụng của tôi trong Facebook.

Do trang quyền không hiển thị, người dùng mới không thể thêm ứng dụng. Các phiên bản cũ của ứng dụng của tôi đã từng hoạt động cũng không hoạt động theo cách tương tự. Điều gì có thể là vấn đề?

+0

Được rồi, nó phải là thứ liên quan đến cài đặt FB cho ứng dụng. Nhưng không có ý tưởng gì. Tôi đã thiết lập FB DemoApp để sử dụng app_id của ứng dụng thất bại của tôi và nó không thành công (vì vậy tôi biết nó không nhất thiết phải là mã của tôi). Sau đó tôi đặt nó vào id ứng dụng của ứng dụng khác mà tôi không còn phát triển nữa; Và nó hoạt động! Tôi không thể nói sự khác biệt giữa hai cấu hình khác nhau là gì. Ugh! – wrlee

Trả lời

0

Nếu liên kết bạn đăng là chính xác liên kết trong ứng dụng của bạn, thì thông số "redirect_uri" bị thiếu chữ "e". "fbconnect".

http://www.facebook.com/dialog/permissions.request?_path=permissions.request & APP_ID = [APPID] & redirct_uri = fb [APPID]% 3A% 3F% 3Fauthorize & sdk = 2 & display = chạm & type = user_agent & fbocnnect = 1 & perms = USER_LOCATION% 2Cuser_relationships% 2Cemail% 2Cpublish_stream% 2Coffline_access & sso = iphone-săn & from_login = 1

Bên cạnh đó, bạn nên đảm bảo rằng [appid] của bạn là chính xác và fb[appid]%3A%3F%3Fauthorize là liên kết xử lý FB chính xác của ứng dụng của bạn.

+0

Không, tôi phải phiên âm nó, vì vậy nó là một lỗi đánh máy. Bạn có thể cho phép sử dụng mới vào ứng dụng iOS của mình không? – wrlee

+0

Mã được sử dụng để hoạt động tốt. Tôi đã thử nghiệm nó như một người dùng được ủy quyền trong một thời gian dài và không nhận thấy khi điều này ngừng hoạt động. URL thứ 2 được tạo bởi Facebook, kết quả của việc đăng nhập của tôi với tư cách là người dùng cần cho phép quyền ứng dụng. URL đầu tiên được tạo bởi iOS SDK và tiếp tục hoạt động cho người dùng đã cho phép các quyền đối với ứng dụng. – wrlee

+0

@wrlee: không, tôi chỉ tích hợp Facebook cho trang web, nhưng luồng OAuth phải giống nhau. Tôi đã kiểm tra url, nó hoạt động cho ứng dụng của tôi. Về những thay đổi trong cài đặt Facebook, tôi nhận thấy rằng FB sẽ bắt buộc https. Nó có ảnh hưởng gì đến ứng dụng của bạn không? –

5

Được rồi, tôi cảm thấy hơi ngu ngốc.

Vấn đề là tôi đã bật Sandboxing trong cài đặt ứng dụng trong trang Facebook. Tại sao trang lỗi quá đáng bị vượt quá tôi.

  1. Trong cài đặt nhà phát triển Facebook: https://developers.facebook.com, chỉnh sửa cài đặt ứng dụng của bạn.
  2. Chọn tab "Nâng cao", trong "Cài đặt" ở bên trái.
  3. Đảm bảo rằng "Chế độ hộp cát" không được bật.
+0

Đó là một vấn đề cũ đối với tôi. Ở chế độ hộp cát, chỉ những người dùng bạn thêm vào nhóm nhà phát triển mới có thể truy cập vào ứng dụng, nếu không nó sẽ reposrt: không tìm thấy nội dung. –

+0

Ah, vấn đề này đối với tôi, mặc dù tôi là quản trị viên ứng dụng. Tôi nghĩ đó là vì tôi đã tạo ứng dụng facebook * sau * đăng nhập vào facebook trên Android. Giải pháp: đăng xuất khỏi ứng dụng facebook trên android, đăng nhập lại. – Timmmm

3

Tôi gặp sự cố tương tự, khi ID ứng dụng của tôi không chính xác trong Thông tin Plist.

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>fb305639062848xxx</string> 
     </array> 
    </dict> 
</array> 

Tôi phát hiện ra, không phải ID ứng dụng Apple phải được đặt ở đó, nhưng ID ứng dụng Facebook. (Chung trong cài đặt ứng dụng của bạn trên trang web nhà phát triển Facebook, trong Tên ứng dụng có ID ứng dụng và Mật khẩu ứng dụng)

Có 3 số cuối bị ẩn bởi xxx.