0

各位专家,

我创建了一个用于向用户朋友的收件箱发送私人消息的 fb 应用程序。我们希望用户能够通过我们的网站向他们的朋友发送消息,但一次只能发送给一个收件人(他们将从列表中选择他们的朋友该站点,我们将在该站点上预先填充消息)。

但是当对话框出现在用户端时,用户可以编辑和添加多个收件人。我需要限制用户在对话框上添加和编辑。有没有办法做到这一点,请给我一个建议。

这是 ss http://screencast.com/t/wvbPe06zAi

任何建议将不胜感激。

4

2 回答 2

0

我在下面的示例中使用了此页面Mutli Friend Selector中的代码,但我将复选框输入替换为 Radio 输入以将选择限制为一个朋友。

您可以构建一个简单的 UI(Java 脚本)以允许用户使用如下单选按钮选择他的一个朋友:

function renderMFS() {
FB.api('/me/friends', function(response) {
var container = document.getElementById('mfs');
var mfsForm = document.createElement('form');
mfsForm.id = 'mfsForm';

for(var i = 0; i < Math.min(response.data.length, 10); i++) {
 var friendItem = document.createElement('div');
 friendItem.id = 'friend_' + response.data[i].id;
 friendItem.innerHTML = '<input type="radio" name="friends" value="'
   + response.data[i].id
   + '" />' + response.data[i].name;
   mfsForm.appendChild(friendItem);
 }
 container.appendChild(mfsForm);

 // Create a button to send the Request(s)
 var sendButton = document.createElement('input');
 sendButton.type = 'button';
 sendButton.value = 'Send Request';
 sendButton.onclick = sendRequest;
 mfsForm.appendChild(sendButton);
});
}

选择朋友后,用户将单击上面脚本生成的发送按钮。单击发送按钮后,将执行下面的函数。

function sendRequest() {
// Get the list of selected friends
var sendUIDs = '';
var mfsForm = document.getElementById('mfsForm');
 for(var i = 0; i < mfsForm.friends.length; i++) {
   if(mfsForm.friends[i].checked) {
     sendUIDs += mfsForm.friends[i].value + ',';
   }
 }


FB.ui({method: 'send',
 to: sendUIDs,
 name: 'My Great Invite',
 message: 'Check out this!!!',
}, callback);
}

function callback(response) {
console.log(response);
}
于 2013-04-19T20:46:59.497 回答
0

使用该send对话框,您将无法限制收件人用户。

强制限制只有一个用户的唯一另一种方法是将消息发布到他们的提要。您一次只能发布到一个用户的供稿。然而,这不是私人的,只是发布在他们的个人资料上。

为此,您需要to在启动FB.ui()对话时指定一个参数。这是一个简单的例子:

var obj = {
  method: 'feed',
  link: 'https://your.cool.site.com',
  picture: 'http://your.cool.site.com/foo.jpg',
  name: 'My Cool Site',
  to: USER_FBID
};
FB.ui(obj);
于 2013-04-19T12:08:57.603 回答