2013-08-02 21 views
5

Tôi muốn cung cấp cho người dùng khả năng gửi tiền cho bạn bè trên Facebook thông qua ứng dụng của chúng tôi (Exvo) bằng cách gửi URL đến thư mời trang qua Facebook.Facebook Gửi hộp thoại với API Mã lỗi: 100 ('link' không hợp lệ)

Tôi đang sử dụng hộp thoại 'Gửi' Facebook (với chuyển hướng tới trang web Facebook). Url chính xác tôi đang chuyển hướng người dùng đến là (to lĩnh vực đã được redacted):

https://www.facebook.com/dialog/send?app_id=637466739616439&description=You+can+create+an+Exvo+Account+to+accept+this+money+transfer.&display=page&link=https%3A%2F%2Fwww.exvo.com%2Finvitations%2F9fb77bda665f0ae8f58843daec80a29b&name=Pawe%C5%82+Go%C5%9Bcicki+would+like+to+send+you+0.01+EUR&picture=https%3A%2F%2Fthemes.exvo.com%2Fstylesheets%2Fimages%2Fcustom_images%2Flogo.png&redirect_uri=https%3A%2F%2Fwww.exvo.com&to=username

này trình bày cho tôi với một Facebook 'Gửi' thoại. Khi tôi gõ một thông báo tùy chỉnh và nhấn 'Gửi', tôi đã trình bày với lỗi này:

API Error Code: 100 
API Error Description: Invalid parameter 
Error Message: 'link' is invalid. 

Liên kết param (chiết xuất từ ​​URL ở trên và giải mã) là thế này:

https://www.exvo.com/invitations/9fb77bda665f0ae8f58843daec80a29b 

mà là một URL hợp lệ, trả về một phản hồi 200 phù hợp. Sử dụng trình gỡ lỗi Facebook tôi có thể thấy rằng các URL được cung cấp không tạo ra bất kỳ lỗi:

https://developers.facebook.com/tools/debug/og/object?q=https%3A%2F%2Fwww.exvo.com%2Finvitations%2F9fb77bda665f0ae8f58843daec80a29b

Chỉ cảnh báo về tính chất suy ra (Tôi đã thêm những người ở một điểm là tốt, nhưng nó không hiệu quả).

Cũng lưu ý rằng thỉnh thoảng một lần (như 1 trong 10), khi tôi nhấp vào 'Gửi', thông báo được thông qua và tôi không thấy bất kỳ lỗi nào, điều này khiến cho nó thậm chí còn khó hơn.

Tại sao lỗi này xảy ra? Tôi đang làm gì sai?

+0

Tôi gặp vấn đề tương tự - tôi nghĩ có lẽ vấn đề là các liên kết của tôi quay trở lại cùng một URL canvas mà chúng đã được đăng, nhưng việc thay đổi dường như không tạo nên sự khác biệt. Mọi thứ đã hoạt động sớm hơn một chút ngày hôm nay, nhưng giờ cuối cùng đã bị hỏng (tôi thậm chí không thể tạo liên kết tới yahoo.com). Tôi nghi ngờ điều này có thể chỉ là 'một số mã bị hỏng và không ai biết hoặc quan tâm đến nó nhiều'. :/ – mgkimsal

+0

Tôi nghĩ rằng tôi đã giải quyết nó khi kết thúc - Tôi có URL giống như của bạn: foo.com/path/to/code/id/6/rand/ab2e9c8dfb27385 Tôi đã thêm phần rand để hành động như một buster cache, và dường như nó không giống như những chuỗi ID dài thực sự. Loại bỏ những thứ đó dường như giúp đỡ, vì mọi thứ đang hoạt động. Những thứ khác tôi đã kiểm tra - og. các thẻ meta trên trình gỡ lỗi facebook - URL một, tôi đảm bảo không có chuyển hướng nào đang diễn ra. Và tôi đã thêm các trường bị thiếu (hình ảnh, mô tả, v.v.). Đó chỉ là 'cảnh báo', nhưng hoàn thành tất cả và mất chuỗi dài đã cho tôi một 'gửi' làm việc. Chúc may mắn! – mgkimsal

Trả lời

0

cách làm như sau cố định nó cho tôi:

  • ngắn token (string này trong link param: 9fb77bda665f0ae8f58843daec80a29b, dài 32 ký tự, hiện tại là 16) như tư vấn bởi gkimsal
  • chấp nhận October 2013 breaking changes , yêu cầu tôi giới thiệu thẻ OpenGraph cho trang và bỏ các thông số name, descriptionpicture_uri mà tôi đã bao gồm khi xây dựng hộp thoại Gửi chuyển hướng uri

Bây giờ Facebook, trước khi hiển thị hộp thoại Gửi cho người dùng, phải tìm nạp trước trang của tôi để truy xuất dữ liệu (từ OG: title, descriptionimage) để hiển thị hộp thoại phù hợp cho người dùng. Tôi nghĩ đây là điều giúp ích nhiều nhất trong trường hợp của tôi.

+0

Nhưng các thẻ meta không hoạt động đối với tôi. Vẫn phản ánh cùng một vấn đề. Xin hãy tư vấn cho tôi .. – user2003356

2

Tôi đã tìm ra điều gì đó kỳ lạ, cùng một điều xảy ra hôm nay trên trang web tôi quản lý, vấn đề dường như là liên kết chứa từ facebook trong đó, vì vậy hãy thử xóa [facebook, fb, hoặc f if it là một từ hoàn toàn] từ url của bạn, nó sẽ hoạt động, tôi đã có một url như open/ID/facebook/ và cách duy nhất nó hoạt động khi tôi thay đổi nó thành fopen/ID/ trông ngu ngốc!

Vì vậy, có thể trong trường hợp của bạn đây là vấn đề: https://www.exvo.com/invitations/9fb77bda665f0ae8f58843daec80a29b

Cố gắng thay đổi url của bạn để một cái gì đó mà không fb hoặc facebook hoặc bất cứ điều gì tương tự.

+0

Cảm ơn bạn đã trả lời, nhưng tiếc là không phải vậy. Tôi đã thay đổi nó thành một cái gì đó hoàn toàn khác nhau (nhưng để lại tên miền trong đó) và nó vẫn dẫn đến 100 lỗi đáng sợ. –

0

Tôi gặp sự cố này khi chỉ sử dụng hộp thoại gửi. Tôi đã sử dụng thông số chuỗi truy vấn động trên một URL phổ biến. Các URL phổ biến đã được cạo bởi Facebook nhưng mỗi lần lặp lại của các URL phổ biến các tham số chuỗi truy vấn sẽ dẫn đến lỗi này nếu Facebook đã không cạo chính xác URL đó trước đây.

Tôi đã khắc phục sự cố bằng cách buộc Facebook xóa URL trước Tôi cố gắng gửi thông qua Hộp thoại gửi giao diện người dùng FB. Sử dụng API FB để truy cập graph.facebook.com với URL được đăng trong thông số id và thông số scrape được đặt thành true.

Giống như vậy:

FB.api('https://graph.facebook.com/', 'post', { 
    id: '[URL]', 
    scrape: true 
}, function(response) { 
    FB.ui({ 
     method: 'send', 
     name: '[name]', 
     picture: '[Picture URL]', 
     link: '[URL]', 
     description: '[description]' 
    }); 
}); 

Tôi cũng đã trả lời với giải pháp này đến cùng một vấn đề here.

8

Điều này có thể không phải là vấn đề trong trường hợp của bạn, nhưng chỉ cho khả năng phát hiện: đảm bảo rằng URL bạn đang chia sẻ có sẵn công khai trên internet (tức là không nằm trong tường lửa của bạn hoặc trên máy tính cục bộ). FB cần truy cập URL của bạn để xác minh tính xác thực của nó.

+0

Có, tất nhiên :) –

+0

điều này gợi ý cho tôi câu trả lời đúng. Tôi đã phải thay đổi https để http trong liên kết của tôi bởi vì tôi havent thực sự thiết lập https trên trang web của tôi được nêu ra để facebook có khả năng không thể xác minh nó. – parliament

+0

doh! Tôi đang sử dụng localhost ... Tôi không phải là người thông minh> _ < – Kraiden

2

Giống như mpcabd đã chỉ ra ở trên, hãy chắc chắn để loại bỏ bất cứ điều gì với fb, fbdev, facebook trong url vì khi tôi đã làm, nó giải quyết vấn đề cho tôi. Nó có thể là một lỗi hoặc một biện pháp an ninh của Facebook. Bạn luôn được yêu cầu chuyển một redirect_uri với liên kết và thử đề cập đến một tiêu đề.

Ngoài ra liên kết của bạn và redirect_uri phải nằm trong miền của bạn mà bạn đã cung cấp cho ứng dụng. Ví dụ: nếu miền ứng dụng của bạn trong cài đặt ứng dụng là http://stackexchange.com, bạn không thể chia sẻ một liên kết như nói https://stackoverflow.com/apps/php/fbsdk/etc/login.php, thay vào đó bạn phải chia sẻ liên kết http://stackexchange.com/apps/php/etc/login.php mà đã làm việc cho tôi

echo "<a href='https://www.facebook.com/dialog/send?app_id=YOUR_APP_ID&name=Thanks&link=".$linkToShare."&redirect_uri=".$linkToRedirectTo."'/>Send</a>";

Bạn cũng có thể gán $title một cái gì đó .

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