首先,嗨和感謝任何人誰可以提供幫助,因爲我已經瘋了這個幾個星期了。Facebook共享的意外行爲
所以我有一個網站列出了從我的移動應用程序中獲取的gif(然後存儲在AWS和我的訪問者(我沒有找到一個用於我的用戶)可以在Facebook上使用這些gif 。當我嘗試共享的圖像首次facebook的SDK
這個問題似乎
這就是共享對話框顯示第一次我點擊我的分享按鈕:
http://i.stack.imgur.com/lNVNF.png
然後我關閉,reclick相同的按鈕,現在它的工作原理:
http://i.stack.imgur.com/YsDUm.png
現在,我一直試圖找到一種方法,使第一個共享的嘗試,但都無濟於事這項工作。
我正在使用流星與biasport:facebook-sdk和Amazon S3共同託管我的文件。這裏
編輯是使用的代碼:
正面
HTML
<div class="facebook share">
<img src="/gallery/fb.png">
</div>
的Javascript
Template.*templateName*.events({
'click .facebook': function(e){
e.preventDefault();
e.stopPropagation();
// this is in a modal so I store the data I need
// (events have photos which in turn contain a url to the gif
var url = Session.get('event').photos[Session.get("id")].url;
FB.ui({
method: 'share',
href: url
});
}
服務器端
JAVASCRIPT
if(Meteor.isClient) {
window.fbAsyncInit = function() {
FB.init({
appId : 'APP_ID',
status : true,
xfbml : true,
version : 'v2.5'
});
};
}
編輯:我發現使用EXEC未來和捲曲
所以首先我加了一個電話到共享流星方法來更新Facebook的履帶
JAVASCRIPT
Template.*templateName*.events({
'click .facebook': function(e){
e.preventDefault();
e.stopPropagation();
// this is in a modal so I store the data I need
// (events have photos which in turn contain a url to the gif
var url = Session.get('event').photos[Session.get("id")].url;
Meteor.call('updateCrawler', url, function(){
FB.ui({
method: 'share',
href: url
});
});
}
手動解決方案
然後,我定義了我的流星法,就像這樣
JAVASCRIP牛逼
Meteor.methods({
updateCrawler: function(url){
var future = new Future();
cmd = 'curl -X POST -F "id=' + url + '" -F "scrape=true" -F "access_token={my_access_token}" "https://graph.facebook.com"';
exec(cmd, function(error){
if (error){
console.log(error);
}
future.return();
});
future.wait();
}
});
它是醜陋的,但因爲我不得不等待履帶更新和它的作品在這裏我要離開這個以備將來使用的人也許
EDIT2:
我做根本不使用og標記,因爲我只是直接共享一個url到aws而不是一個url到我的網站
@Kyll我已添加相關代碼 –