2013-09-30 22 views
6

tôi tiếp tục nhận được lỗi sauURL không được phép: Facebook PHP đăng nhập

URL Do không được phép bởi cấu hình ứng dụng .: Một hoặc nhiều URL đã cho là không được phép bởi các thiết lập của ứng dụng. Phải khớp với URL của trang web hoặc URL Canvas hoặc tên miền phải là tên miền phụ của một trong các miền của ứng dụng.

khi tôi cố đăng nhập người dùng bằng đoạn mã PHP của tôi (xem bên dưới). thiết lập Facebook của tôi như sau:

App Domains: myappname-mynamespace.rhcloud.com www.myappname-mynamespace.rhcloud.com 

Site URL: http://myappname-mynamespace.rhcloud.com/ 

Canvas Page: http://apps.facebook.com/myappname 

Canvas URL: http://myappname-mynamespace.rhcloud.com/ 

Secure Canvas URL: https://myappname-mynamespace.rhcloud.com/ 

Tôi đã đọc câu hỏi tương tự here, here, here, herehere và tất cả dường như nói cùng một điều: URL trang web của tôi (Website với Facebook Đăng nhập) là không chính xác .

Nhưng URL OpenShift của tôi là như thế này

http://myappname-mynamespace.rhcloud.com 

vì vậy đó là những gì tôi đưa vào trường URL Facebook Site. Tôi có mã PHP sau (index.php) trong thư mục gốc của Openshift thiết bị của tôi:

<?php 
    require 'php-sdk/facebook.php'; 
    $facebook = new Facebook(array(
     'appId' => 'xxxx', 
     'secret' => 'xxxx' 
    )); 
?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Facebook PHP</title> 
</head> 
<body> 
<h1>Hello World!</h1> 
<?php 
    // get user from facebook object 
    $user = $facebook->getUser(); 

    if ($user): // check for existing user id 
     echo '<p>User ID: ', $user, '</p>'; 
    else: // user doesn't exist 
     $loginUrl = $facebook->getLoginUrl(array(
      'display' => 'popup', 
      'redirect_uri' => 'http://apps.facebook.com/myappname' 
     )); 
     echo '<p><a href="', $loginUrl, '" target="_top">login</a></p>'; 
    endif; 
?> 
</body> 
</html> 

Tôi đang làm gì sai?

Khi tôi nhập URL của ứng dụng Facebook (http://apps.facebook.com/myappname), Hello World! và liên kết đăng nhập của tôi được hiển thị trên đầu khung nội tuyến của ứng dụng Facebook của tôi. Tuy nhiên khi tôi nhấp vào liên kết đăng nhập, tôi nhận được lỗi được đề cập ở trên. Bất kỳ trợ giúp sẽ được đánh giá cao!

EDIT

tôi bước vào url sau trong trình duyệt của tôi và Hello World và liên kết đăng nhập được cả hai hiển thị.

http://myappname-mydomainname.rhcloud.com/ 
https://myappname-mydomainname.rhcloud.com/ 
+1

Mọi thứ đều ổn. Nhưng chỉ là một shot trong bóng tối: khi tôi so sánh cấu hình của bạn với tôi, tôi sẽ nói rằng bạn cần thêm dấu gạch chéo ở cuối 'http: // myappname-mynamespace.rhcloud.com' cho URL của trang web. –

+0

+1 Cảm ơn bạn đã trả lời @ StéphaneBruckert Tôi đã kiểm tra lại URL trang web của mình và tôi có dấu gạch chéo «http: // fbtest-projectkohana.rhcloud.com /'. Tôi sẽ sửa câu hỏi của tôi. Tôi có thể đã đặt '/' sau khi viết câu hỏi này nhưng nó vẫn không hoạt động. Đây là ứng dụng thử nghiệm thứ hai mà tôi đang viết đã tạo ra lỗi này. Vấn đề này có liên quan đến việc tôi sử dụng Openshift không? Openshift sử dụng chứng chỉ SSL được chia sẻ cho các tài khoản miễn phí như của tôi. – Anthony

+1

Một thời gian xảy ra bất kỳ điều gì bạn thực hiện thay đổi trong cài đặt FB sẽ ảnh hưởng sau một vài giờ. vì vậy hãy kiểm tra sau khi bạn đã thực hiện thay đổi. – Chandresh

Trả lời

2

Một thời gian ngắn, tôi đã làm việc với API của Facebook vì bất kỳ lý do gì, tôi vẫn gặp phải lỗi tương tự. Hóa ra một số url với http được cho là https, không phải là facebook đã làm cho một điểm để lại hướng dẫn đúng. Tôi khuyên bạn nên thay đổi Site URL: http://myappname-mynamespace.rhcloud.com thành Site URL: https://myappname-mynamespace.rhcloud.com. Nếu điều này không giúp tôi đề nghị xem các URL khác và thay đổi chúng. Chúc may mắn

+0

+1 Cảm ơn bạn rất nhiều vì đã trả lời. Tôi đã thay đổi URL trang web của mình (trong cấu hình FB) thành 'https: // fbtest-projectkohana.rhcloud.com /' lưu nó, sau đó làm mới nhưng tôi gặp lỗi tương tự. Tuy nhiên trong url của trình duyệt của tôi, tôi nhận thấy rằng các uri chuyển hướng có http, không https '... redirect_uri = http% 3A% 2F% 2F ...'. Tôi đã thay đổi kịch bản được đề cập ở trên để sử dụng https thay vì git và đẩy nó vào máy chủ Openshift thành công và bây giờ tôi thấy '... redirect_uri = https% 3A% 2F% 2F ...' nhưng tôi vẫn nhận được như cũ lỗi. Lỗi này có phải do chứng chỉ ssl được chia sẻ mà tài khoản/ứng dụng Openshift miễn phí của tôi sử dụng không? – Anthony

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