2014-11-21 73 views
2

如何在Titanium的Facebook模塊對話框中添加圖片?在鈦的例子,在對話框中的圖片屬性是一個圖片從一個網站的鏈接:Facebook模塊對話框錯誤圖片格式不正確

var data = 
{ 
    link : "http://www.appcelerator.com", 
    name : "Appcelerator Titanium Mobile", 
    message : "Checkout this cool open source project for creating mobile apps", 
    caption : "Appcelerator Titanium Mobile", 
    picture : "http://developer.appcelerator.com/assets/img/DEV_titmobile_image.png", 
    description : "You've got the ideas, now you've got the power. Titanium translates " + 
       "your hard won web skills into native applications..." 
}; 

fb.dialog("feed", data, function(e) 
{ 
    if(e.success && e.result) 
    { 
     alert("Success! New Post ID: " + e.result); 
    } 
    else 
    { 
     if(e.error) 
     { 
      alert(e.error); 
     } 
     else 
     { 
      alert("User canceled dialog."); 
     } 
    } 
}); 

但是,如果你想使用的圖片是本地而不是通過一個這樣的網站的鏈接是什麼?

var data = 
{ 
    link: "http://play.google.com/", 
    name: "Android app's name", 
    picture: "file:///data/data/com.appid/app_appdata/directory/name-of-image.jpg" 
}; 

我得到圖片屬性格式錯誤,如果我使用上面的代碼。見視覺參考這一形象:http://postimg.org/image/wjefdlalb/

我使用文件系統這樣的嘗試:

function getFile() 
{ 
    var imageFileToPost; 
    var imageFile = Ti.Filesystem.getFile("file:///data/data/com.appid/app_appdata/directory/name-of-image.jpg"); 

    if (imageFile.exists()) 
    { 
     console.log("exists"); 
     imageFileToPost = imageFile.read(); 
    } 

    return imageFileToPost; 
} 

var data = 
{ 
    link: "http://play.google.com/", 
    name: "Android app's name", 
    picture: getFile() 
}; 

和郵政是成功的,沒有錯誤,但圖像沒有公佈在Facebook上。

注意:我會使用圖表,但我需要使用像'publish_actions'這樣的權限,這意味着我必須讓Facebook查看應用程序,但即使用戶可以編輯消息,也不喜歡預填消息。那麼這真的只是Facebook模塊對話框的一個格式問題,或者它只需要一張圖片的URL?如果這是一個格式問題,任何人都可以告訴我如何正確格式化,因爲我真的需要使用本地圖片而不是網站圖片?

+0

你可能要檢查[此帖](http://www.titaniumtutorial.com/2012/03/create-album-and-post-photos-in.html) – turtle 2014-11-25 05:26:11

+0

嗨龜,感謝您的時間,但我寧願不使用圖。我使用了圖表並使用了publish_actions,但被Facebook拒絕了,因爲我已經預先填充了用戶可以編輯的消息。 Facebook只是不喜歡預先填寫的消息,對話讓我可以預先填充鏈接和圖片等數據,而無需詢問Facebook的權限。 – junerockwell 2014-12-01 19:17:48

回答

0

答案可能有點晚,但最近我有同樣的問題。

當前版本的Facebook模塊似乎不可能創建一個對話框來共享本地圖像。

因爲我還需要爲我的應用程序使用此功能,所以我分叉了模塊(https://github.com/dthulke/ti.facebook)並添加了一個方法presentPhotoShareDialog,它將圖像blob作爲參數。不幸的是,它只有在安裝了原生Facebook應用程序時纔有效。

例子:

if (fb.getCanPresentShareDialog()) { 
    fb.presentPhotoShareDialog({ 
     imageBlob : view.toImage() 
    }); 
}