2011-12-20 38 views
11

Tôi đang cố gắng tải lên vài ảnh cũ với ngày tạo trong quá khứ để chúng xuất hiện đúng trong dòng thời gian. Hiện tại api chỉ cho phép truyền thông điệp và nguồn.Tải ảnh lên cho ngày trước

tức là

POST https://graph.facebook.com/ALBUM_ID/photos?access_token=xyz 
    ..multipart.form.data.with.message.and.source.. 

là cách duy nhất tôi có thể tải ảnh lên.

POST https://graph.facebook.com/PHOTO_ID?access_token=xyz 
    created_time=2010-01-20T09:04Z&updated_time=2010-01-20T09:04Z 

cũng không di chuyển ngày chụp ảnh.

Tôi đã cố gắng tạo một bài đăng trong quá trình tải lên ảnh bằng cách sử dụng api /feed, nhưng nó không cho phép tôi tạo một bức ảnh hiện có một bài đăng. Nó làm cho nó một bài liên kết kiểu.

Những gì tôi muốn chính xác tạo ra một đối tượng hình ảnh và xuất bản sau đây:

{ 
    "id": "xx_yy", 
    "from": { 
     "name": "My Name", 
     "id": "myfbid" 
    }, 
    "story": "<My Name> added a new photo.", 
    "picture": "<PhotoJPEG>", 
    "link": "<FBPhoto_URL>", 
    "name": "Photo Name", 
    "icon": "https://s-static.ak.facebook.com/rsrc.php/v1/yz/r/StEh3RhPvjk.gif", 
    "actions": [ 
     { 
      "name": "Comment", 
      "link": "https://www.facebook.com/xxx/posts/yy" 
     }, 
     { 
      "name": "Like", 
      "link": "https://www.facebook.com/xx/posts/yy" 
     } 
    ], 
    "privacy": { 
     "description": "Group", 
     "value": "CUSTOM", 
     "friends": "SOME_FRIENDS", 
     "allow": "<GROUPID>" 
    }, 
    "place": { 
     "id": "<placeid>", 
     "name": "<PlaceName>" 
    }, 
    "type": "photo", 
    "object_id": "12345", 
    "created_time": "2010-09-20T13:37:54+0000", 
    "updated_time": "2010-09-20T13:37:54+0000", 
    "comments": { 
     "count": 0 
    } 
    } 
+3

Đối với những gì nó có giá trị, tôi đã nói chuyện với Nick Felton tại Facebook vào ngày 07 Tháng 12 và ông chỉ ra rằng điều này là không thể với các API, nhưng sẽ sớm. Tôi rất mong được thêm ảnh cũ nữa! –

+0

Tôi nghĩ tính năng dòng thời gian giờ đây là tính năng tập trung vào người dùng và chưa có sẵn cho nhà phát triển .. Ngay cả đối với người dùng, tính năng dòng thời gian không có sẵn cho tất cả ... Vì vậy, khi mọi điều sai lệch tại chỗ, tôi hy vọng facebook sẽ xuất hiện tùy chọn để xử lý những điều này thông qua API – Vijay

Trả lời

8

Tôi là kỹ sư tại FB, chứ không phải trên nhóm Nền tảng nên tôi không cập nhật 100% về điều này. Có một trường không có giấy tờ 'backdated_time' có sẵn trên trình tải ảnh lên trong API đồ thị. Tôi cho rằng đó là sự siêu việt và sẽ được tài trợ trong vài tuần tới, nhưng hãy thử nó trong thời gian tạm thời (và báo cáo lại ở đây!).

Phải mất dấu thời gian ISO-8601 bằng giao diện của nó.

Nhóm tài liệu đã bị truy đuổi để tìm hiểu điều gì đang diễn ra.

Ngoài ra, DMCS không hoàn toàn đúng. Các kỹ sư FB (đặc biệt là những người trong nhóm Hỗ trợ phát triển của chúng tôi) được khuyến khích tham gia ở đây để trợ giúp các câu hỏi và mỗi tuần trên blog nhà phát triển của chúng tôi, chúng tôi đăng bao nhiêu câu hỏi và số lượng câu hỏi đã được trả lời. Vì vậy, có một cam kết để nhận được câu hỏi về SO trả lời - xem https://developers.facebook.com/blog/post/625/ làm ví dụ.

Tuy nhiên, có sự khác biệt giữa hỗ trợ các tính năng hiện tại và lỗi/yêu cầu cho các tính năng mới. Nếu bạn có yêu cầu về tính năng hoặc lỗi, hãy thêm nó vào http://developers.facebook.com/bugs.

Cảm ơn!

+0

Tôi đã thử nó, nó hoạt động! Cảm ơn! Làm ví dụ mã trong câu trả lời của tôi. Và ..... bạn có biết nếu có một lĩnh vực tương tự cho vị trí? Tôi đã thử một vài dự đoán (ví dụ: "vị trí") nhưng không có gì hiệu quả. –

+1

Nếu vị trí đã là một vị trí trong biểu đồ thì 'vị trí' và uid của trang địa điểm có thể sẽ hoạt động – mrtom

+0

Nó đã hoạt động! Cảm ơn :) – Alagu

1

Tôi sẽ giả với cách mới timeline là, rằng đây là một lỗi Facebook hoặc một nâng cao mà cần phải được thực hiện cho các API. Bạn đã gửi bài này lên Facebook chưa?

+0

Tôi chưa gửi nó lên Facebook, nhưng tôi nghĩ facebook.stackoverflow.com là cách để nói chuyện với những người của FB. (https://developers.facebook.com/blog/post/545/) – Alagu

+0

Không, chỉ là các lập trình viên đồng nghiệp ở đây. Bạn sẽ cần phải gửi lỗi của riêng bạn tới https://developers.facebook.com/bugs – DMCS

0

Mã sau hoạt động. (Kết hợp this FB example mã với mrtom's undocumented field.)

<?php 

$app_id = "YOUR_APP_ID"; 
$app_secret = "YOUR_APP_SECRET"; 
$post_login_url = "YOUR_POST_LOGIN_URL"; // should be the URL of this script 

$code = $_REQUEST["code"]; 

//Obtain the access_token with publish_stream permission 
if(empty($code)) { 
    $dialog_url= "http://www.facebook.com/dialog/oauth?" 
    . "client_id=" . $app_id 
    . "&redirect_uri=" . urlencode($post_login_url) 
    . "&scope=publish_stream"; 
    echo("<script>top.location.href='" . $dialog_url 
    . "'</script>"); 
} 
else { 

    $token_url="https://graph.facebook.com/oauth/access_token?" 
    . "client_id=" . $app_id 
. "&redirect_uri=" . urlencode($post_login_url) 
    . "&client_secret=" . $app_secret 
    . "&code=" . $code; 
    $response = file_get_contents($token_url); 
    $params = null; 
    parse_str($response, $params); 
    $access_token = $params['access_token']; 

// Show photo upload form to user and post to the Graph URL 
$graph_url= "https://graph.facebook.com/me/photos?" 
. "access_token=" .$access_token; 

echo '<html><body>'; 
echo '<form enctype="multipart/form-data" action="' 
.$graph_url .' "method="POST">'; 
echo 'Please choose a photo: '; 
echo '<input name="source" type="file"><br/><br/>'; 
echo 'Say something about this photo: '; 
echo '<input name="message" 
    type="text" value=""><br/><br/>'; 
echo 'ISO Date for this photo: '; 
echo '<input name="backdated_time" 
    type="text" value=""><br/><br/>'; 

echo '<input type="submit" value="Upload"/><br/>'; 
echo '</form>'; 
echo '</body></html>'; 
} 

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