2015-10-06 58 views
1

我的應用程序需要從URL獲取數據facebook報廢。到現在爲止,我們使用使用url可靠地獲取來自Facebook圖表api的報廢數據

POST /?id={object-instance-id or object-url}&scrape=true 

這是在https://developers.facebook.com/docs/sharing/opengraph/using-objects

更新對象部分例如

POST /?id=http://google.com 
{ 
    "url": "http://www.google.com/", 
    "type": "website", 
    "title": "Google", 
    "image": [ 
    { 
    "url": "http://www.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png" 
    } 
    ], 
    "description": "Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for.", 
    "updated_time": "2015-10-06T11:34:58+0000", 
    "id": "381702034999" 
} 

通知圖像部分中詳細描述得到它。

不幸的是如果OG標籤服務器

POST /?id=http://some.page.with.bad.tags.com 
{ 
    "error": { 
    "message": "Invalid parameter", 
    "type": "FacebookApiException", 
    "code": 100, 
    "error_subcode": 1611016, 
    "is_transient": false, 
    "error_user_title": "Object Invalid Value", 
    "error_user_msg": "Object at URL 'http://some.page.with.bad.tags' of type '' is invalid because the given value '/some-bad-value' for property 'og:url' could not be parsed as type 'url'.", 
    "fbtrace_id": "abcabcabc" 
    } 

}

它返回什麼有趣的錯誤配置。

嘗試獲取URL返回此:

{ 
    "og_object": { 
    "id": "381702034999", 
    "description": "Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for.", 
    "title": "Google", 
    "type": "website", 
    "updated_time": "2015-10-06T11:40:04+0000", 
    "url": "http://www.google.com/" 
    }, 
    "share": { 
    "comment_count": 2, 
    "share_count": 13494003 
    }, 
    "id": "http://www.google.com" 
} 

哪個錯過圖像部分。在文檔中找不到使用POST /?id = {url}的圖像檢索結果的任何方式,但在og標記中出現任何錯誤時都失敗。

GET /{ObjectId} 

只返回類型和CREATED_TIME

進入頁面https://developers.facebook.com/tools/debug/結果相同斷鏈其中包含的頁面圖片,說明,標題和字幕。我需要哪些。所以這意味着facebook存儲他們,即使頁面有錯誤的標籤,但我需要一種方法來獲取它們。不幸的是,我無法提供由於NDA導致網址損壞的鏈接,我無法找到其他帶有損壞標籤的網頁。

+0

沒有其他方式通過API獲取該信息。 – CBroe

回答

0

如果頁面包含無效的Open Graph標記,這似乎是預期的,也不要將Graph API與某種數據源或可用於生成Web內容預覽的抓取服務混淆。

如果Facebook無論出於何種原因都無法解析URL的Open Graph標籤,它會嘗試基於頁面內容(文本的大型垃圾,它找到的圖像,標題標籤等等)構建預覽,以便您可以從GET /{object-id}獲取某種數據,這可能只是猜測而不是實際的og:..數據。

如果您真的需要一個或多或少的故障安全解決方案,您可以構建自己的查找Open Graph標籤的刮板。

+0

預期的行爲是獲得有效的og數據(如果一個字段是壞的,其他所有的都是好的,情況就是如此),而不是僅返回500. 另外,Facebook有猜測(如果您將鏈接粘貼到調試中頁面猜測會出現),但現在有辦法訪問我能找到的猜測。 GET/{object-id}不包含猜測。如果這樣做,那就沒有問題了。 即使對於可以正確取消的頁面,GET/{object-id}也不包含相關信息。 我不能用我自己的猜測來製作我的刮刀,因爲我的猜測與FB所做的不一樣。 – Areinu

+0

此外,此端點不打算用作您打算使用它的方式的數據源或服務。關於猜測,這不會導致一系列猜測,但會被填充到適當的字段(例如標題或描述) –

+0

這顯然是錯誤的。它幾乎沒有包含這些頁面。 GET/{ObjectId}只爲那些og字段錯誤的對象返回type和created_time。而已。這在原始問題中提到。 – Areinu

相關問題