Gửi tin nhắn cho bạn bè


89

Tôi cần thông qua Facebook kết nối thông tin của người dùng và gửi một tin nhắn riêng cho tất cả bạn bè của anh ấy. Có khả thi không?


1
Tôi nhận ra điều này không giải quyết được câu hỏi của OP, nhưng những người tìm kiếm một cách để trả lời tin nhắn riêng có thể tìm thấy điều này hữu ích: stackoverflow.com/questions/9598369/...
Trevor

Câu trả lời:


74

Gửi tin nhắn cá nhân qua api hiện có thể.

Kích hoạt sự kiện này để gửi tin nhắn (khởi tạo đối tượng facebook nên được thực hiện trước đó).

to:user id của facebook

function facebook_send_message(to) {
    FB.ui({
        app_id:'xxxxxxxx',
        method: 'send',
        name: "sdfds jj jjjsdj j j ",
        link: 'https://apps.facebook.com/xxxxxxxaxsa',
        to:to,
        description:'sdf sdf sfddsfdd s d  fsf s '

    });
}

Tính chất

  • app_id Định danh
    ứng dụng của bạn. Bắt buộc, nhưng được chỉ định tự động bởi hầu hết các SDK.

  • redirect_uri
    URL để chuyển hướng đến sau khi người dùng nhấp vào các nút Gửi hoặc Hủy trên hộp thoại. Bắt buộc, nhưng được chỉ định tự động bởi hầu hết các SDK.

  • hiển
    thị Chế độ hiển thị để hiển thị hộp thoại. Điều này được chỉ định tự động bởi hầu hết các SDK.

  • tới
    ID người dùng hoặc tên người dùng để gửi tin nhắn. Khi hộp thoại xuất hiện, người dùng có thể chỉ định thêm người dùng, nhóm Facebook và địa chỉ email để gửi tin nhắn. Gửi nội dung đến một nhóm Facebook sẽ đăng nội dung đó lên tường của nhóm.

  • liên kết
    (bắt buộc) Liên kết để gửi tin nhắn.

  • hình ảnh
    Theo mặc định, hình ảnh sẽ được lấy từ liên kết được chỉ định. URL của hình ảnh để đưa vào tin nhắn. Hình ảnh sẽ được hiển thị bên cạnh liên kết.

  • tên Theo mặc định, một tiêu đề sẽ được lấy từ liên kết được chỉ định. Tên của liên kết, tức là văn bản hiển thị mà người dùng sẽ nhấp vào.

  • mô tả
    Theo mặc định, một mô tả sẽ được lấy từ liên kết được chỉ định. Văn bản mô tả để hiển thị bên dưới liên kết.

Xem thêm tại đây

@VishwaKumar:

Để gửi tin nhắn với văn bản tùy chỉnh, bạn phải thêm thông số 'message' vào FB.ui, nhưng tôi nghĩ tính năng này không được dùng nữa. Bạn không thể điền trước tin nhắn nữa. Dù thử một lần.

FB.ui({
  method: 'send',
  to: '1234',
  message: 'A request especially for one person.',
  data: 'tracking information for the user'
});

Xem liên kết này: http://fbdevwiki.com/wiki/FB.ui


3
Giải pháp này đã có một thời gian. Nó không hoàn toàn giải quyết được vấn đề vì bạn phải sử dụng cửa sổ bật lên của Facebook và chỉ có thể điền vào một người duy nhất (tại thời điểm này, hãy theo dõi lỗi tại đây ). Một giải pháp đầy đủ cho phép bạn sử dụng API tiêu chuẩn để gửi tin nhắn theo cách bạn muốn, mặc dù có vẻ như Facebook đã loại bỏ điều này.
Scott

2
@Somnath, cảm ơn bạn đã đăng giải pháp! Bạn có biết có cách nào để vượt qua cửa sổ viết tin nhắn và chỉ gửi tin nhắn trực tiếp không?
CyberJunkie

2
@CyberJunkie: Tôi nghĩ facebook không cung cấp chức năng bỏ qua như vậy. Người dùng phải bấm vào nút gửi tin nhắn. Khôn ngoan khác hộp thư đến của bạn sẽ đầy quảng cáo.
Somnath Muluk

@Somnath: Tôi đã thử giải pháp của bạn và nó hoạt động, Nhưng có cách nào để điền Thông báo trong cửa sổ bật lên bằng các thông báo tùy chỉnh không?
VishwaKumar

@VishwaKumar: Ý của bạn là hộp thông báo phải chứa đầy thông điệp tùy chỉnh khi nó được mở ra?
Somnath Muluk

9

Không, điều này là không thể. Để bạn có thể gửi tin nhắn dưới bất kỳ hình thức nào tới người dùng Facebook, bạn cần người dùng đó cho phép để làm như vậy.

Nếu ai đó đăng nhập vào trang web của bạn bằng Facebook Connect, họ đồng ý rõ ràng chia sẻ dữ liệu Facebook của họ với trang web của bạn và sau đó bạn có thể gửi tin nhắn cho người đó qua các kênh thông thường. Bạn cũng có thể tìm nạp danh sách bạn bè của họ. Tuy nhiên, bạn không thể gửi tin nhắn cho bạn bè.


Google-fu của tôi đang làm tôi thất bại. Có liên kết về cách làm điều này?
Randell

9

Điều này là không thể bây giờ, nhưng có một công việc xung quanh. Bạn có thể tương tác với người dùng trong khu vực công cộng và yêu cầu họ gửi tin nhắn riêng tư cho bạn, nhưng bạn không thể gửi lại tin nhắn riêng tư, chỉ gửi tin nhắn công khai. Tất nhiên, tất cả điều này phụ thuộc vào việc người dùng có cung cấp cho bạn quyền chính xác hay không.

Nếu bạn đã cho phép truy cập vào bạn bè của một người, về mặt lý thuyết, bạn có thể đăng trên tường người dùng đó với các tham chiếu đến từng người bạn, yêu cầu họ tương tác công khai với bạn và sau đó có thể nhắn tin riêng tư cho bạn.

Kết bạn

#if authenticated
https://graph.facebook.com/me/friends
http://developers.facebook.com/docs/reference/api/user/

Đăng trong Miền Công cộng

http://developers.facebook.com/docs/reference/api/status/

Nhận Tin nhắn được gửi đến người dùng đó (nếu được cấp quyền)

http://developers.facebook.com/docs/reference/api/message/

: Bây giờ chúng ta có thể gửi tin nhắn riêng tư ngay bây giờ. Tôi đã đưa ra câu trả lời.
Somnath Muluk

8

Bạn có thể sử dụng Facebook Chat API để gửi tin nhắn riêng tư, đây là một ví dụ trong Ruby sử dụng xmpp4r_facebookgem:

sender_chat_id = "-#{sender_uid}@chat.facebook.com"
receiver_chat_id = "-#{receiver_uid}@chat.facebook.com"
message_body = "message body"
message_subject = "message subject"

jabber_message = Jabber::Message.new(receiver_chat_id, message_body)
jabber_message.subject = message_subject

client = Jabber::Client.new(Jabber::JID.new(sender_chat_id))
client.connect
client.auth_sasl(Jabber::SASL::XFacebookPlatform.new(client,
   ENV.fetch('FACEBOOK_APP_ID'), facebook_auth.token,
   ENV.fetch('FACEBOOK_APP_SECRET')), nil)
client.send(jabber_message)
client.close

các bài viết trên blog về vấn đề này - dalibornasevic.com/posts/...
Dmitry Khryukin

Bạn có mã tương tự trong php để gửi tin nhắn riêng tư không?
Snehal S

3
tính năng này không được dùng nữa kể từ v2.0 sau ngày 1 tháng 5 năm 2015
Daniel Cukier

7

Một giải pháp, mặc dù không phải là một giải pháp tuyệt vời, là sử dụng địa chỉ email @ facebook.com mới. Có một số nhược điểm của điều này:

1) Không phải ai cũng có ứng dụng tin nhắn mới được kích hoạt trong tài khoản của họ.

2) Không phải ai cũng thiết lập email @ facebook.com trong ứng dụng tin nhắn của họ.

3) Không phải ai cũng chọn tên người dùng của họ (nếu họ thậm chí có tên người dùng facebook) làm địa chỉ email của họ.


6

Bạn không thể. API Facebook có read_mailbox nhưng không có quyền mở rộng write_mailbox. Tôi đoán điều này được thực hiện để ngăn các ứng dụng spam tràn vào hộp thư đến của bạn bè.


2

Đối với ứng dụng di động, tôi đã thực hiện một giải pháp bằng cách đưa javascript vào chế độ xem hộp thoại. Có một chế độ xem web ẩn trong ứng dụng ios của tôi. Điều đó tải api hộp thoại gửi tin nhắn fb .. sau đó tôi chèn một số javascript để đặt trường "thành" và "tin nhắn" và gửi biểu mẫu .. Vì vậy, người dùng cuối đó không cần phải làm gì cả. Tin nhắn gửi đến hộp thư facebook âm thầm ...


bạn có thể giải thích thêm về điều này?
Totty.js

@Totty bạn có thể chỉ ra nhận thức của bạn không? Tôi rất cần nó cho ứng dụng iOS của mình.
Alex

0

Không có bất kỳ api đồ thị nào cho việc này, bạn cần sử dụng api chat facebook xmpp để gửi tin nhắn, tin tốt là: Tôi đã tạo ra một lớp php quá dễ sử dụng, hãy gọi một hàm và tin nhắn sẽ được gửi, mã nguồn mở, hãy kiểm tra: tin nhắn facebook api php mô tả nói rằng nó là một mã nguồn đóng nhưng sau này nó được tạo thành mã nguồn mở, hãy xem bình luận đầu tiên, bạn có thể sao chép từ github. Bây giờ nó là một mã nguồn mở.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.