2011-09-24 41 views
6

Tôi đang phát triển trò chơi cho Facebook. Tôi cần một cách để người dùng mời người khác tham gia trò chơi. Đối với điều đó, tôi sử dụng hộp thoại yêu cầu ứng dụng. Tôi chuyển hướng người dùng tới URL thoại, mà tôi dán lại với nhau như thế này:Tránh lỗi 100: thông số không hợp lệ (yêu cầu URI chuyển hướng hợp lệ) trong hộp thoại yêu cầu ứng dụng

$url = "http://www.facebook.com/dialog/apprequests?app_id=".$id."&message=".urlencode("foobar")."&redirect=".urlencode("http://some.arbitrary.url.com"); 

(. Tất nhiên, với lập luận không quá độc đoán, nhưng họ vẫn trông lành mạnh đối với tôi) Khi điều hướng ở đó, người sử dụng bị mắng bởi "Mã lỗi API: 100, Mô tả lỗi API: Thông số không hợp lệ, Thông báo lỗi: Yêu cầu URI chuyển hướng hợp lệ". Tôi googled xung quanh cho một giải pháp, nhưng có vẻ như tất cả những người nhận được lỗi này đã quên để thoát khỏi URL/tin nhắn của họ. Tôi cũng đã thử một số URL cần được chấp nhận mà không có nhận xét, chẳng hạn như URL canvas của ứng dụng.

Có ai biết tôi đang mắc lỗi gì không?

Trả lời

3

Vì vậy, hóa ra giải pháp là sử dụng redirect_urikhông thoát URL để chuyển hướng đến, vì vậy mã tôi đã viết trước nên đọc:

$url = "http://www.facebook.com/dialog/apprequests?app_id=".$id."&message=".urlencode("foobar")."&redirect_uri="."http://some.arbitrary.url.com"; 
1

Hãy thử thay thế các thông số redirect với redirect_uri

+0

Mã lỗi API: 191 Mô tả lỗi API: URL được chỉ định không thuộc sở hữu của ứng dụng Thông báo lỗi: redirect_uri không thuộc sở hữu của ứng dụng. Đó là những gì tôi nhận được nếu tôi trỏ redirect_uri đến apps.facebook.com/whatever. Khi tôi trỏ nó đến một URL thuộc sở hữu của ứng dụng, tôi nhận được cùng một lỗi như trước (100, yêu cầu URI hợp lệ). –

+0

URL có thuộc sở hữu của ứng dụng của bạn không? (nghĩa là miền ứng dụng của bạn là whatever.com, url phải là something.whatever.com/something) – Igy

+0

Vâng, đúng vậy. Đó thực sự là URL chính xác tôi đã nhập trong ứng dụng dành cho nhà phát triển. Trên thực tế, tôi nghĩ rằng nó có thể là một vấn đề là tốt, vì vậy tôi đã nhập một số URL tùy ý các ứng dụng không sở hữu chỉ để xem những gì lỗi tôi sẽ được chào đón, và sau đó tôi nhận được "redirect_uri không thuộc sở hữu của ứng dụng". –

0

Từ kinh nghiệm của tôi với lỗi này; facebook cung cấp cho bạn cùng một lỗi bất cứ thông số nào gây ra lỗi. vấn đề của tôi mà tôi đã không sử dụng encodeURIComponent(contentParam); cho tất cả các tham số vì vậy bất kỳ ký tự đặc biệt nào trong bất kỳ tham số nào đã cho tôi lỗi ở trên.

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