eshoyfer/facebook-auto-messager

I updated the code and i want to message multiple users in a 'string', seperated list ?

Opened this issue · 0 comments

I got it working but its asking only for one user to message and i want to have it loop or message all usernames with space time in between. Can you somehow make an update to make it message a string comma seperated usernames? For example i have a large list to send a group message to or to send to each person.

Here's the working code updated: Copy and Paste into your main.py file:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import sched, time, timeit
import random
import getpass

while True:
userEmail = input("Please enter email.\n")
userPass = getpass.getpass("Please enter password.\n")
userTarget = input("Please enter Facebook username of the user you wish to target.\n")
userQuantity = input("Please enter how many messages you wish to send.\n")
userTimeInterval = input("Please enter time (seconds) between each message. \n")
userMessageType = input("Please enter message type ['single' or 'multiple', without quotes]. \n")
if userMessageType == 'single':
userMessageQuantity = 1
userMessage = input("Please enter the message you wish to send. \n")
userMessages = [userMessage]
operation = True
elif userMessageType == 'multiple':
userMessageQuantity = input("How many distinct messages will you have?\n")
userMessages = []
for i in range(1, userMessageQuantity + 1):
thisMessage = input("Please enter message " + str(i) + " of " + str(userMessageQuantity) + ".\n")
userMessages.append(thisMessage)
operation = True
else:
print ("Invalid input.")
operation = False
input ("Press ENTER to restart the program.\n")

if operation:
	print ("Please confirm the following request information:\n")
	print ("User email: " + userEmail + "\n")
	print ("Target user: " + userTarget + "\n")
	print ("Message count: " + str(userQuantity) + "\n")
	print ("Time interval: " + str(userTimeInterval) + "\n")
	print ("Messages: \n")
	print ("    " + "Number of distinct messages: " + str(userMessageQuantity) + "\n")
	for i in range(userMessageQuantity):
		print ("    " + str(i + 1) + " " + userMessages[i] + "\n")
	print ("Estimated completion time: " + str(userQuantity * userTimeInterval) + " seconds OR " + str((userQuantity * userTimeInterval)/60.0) + " minutes.")
	proceed = input("Proceed? y/n\n")
	if proceed == 'y':
		operation = True
		break;
	else:
		print("Operation aborted.\n")
		input("Press ENTER to restart the program.\n")
		operation = False

if operation:
print ("Initializing...")
browser = webdriver.Chrome()
browser.maximize_window()

print ("Operation in progress.")

browser.get('http://www.facebook.com')
emailElem = browser.find_element_by_id("email")
emailElem.send_keys(userEmail)
passElem = browser.find_element_by_id("pass")
passElem.send_keys(userPass)
passElem.send_keys(Keys.RETURN)
userTargetUrl = "http://www.facebook.com/messages/" + userTarget
browser.get(userTargetUrl)
textAreaElem = browser.find_element_by_css_selector("div textarea.uiTextareaNoResize")
for i in range(userQuantity):
	print ("Sending message " + str(i + 1) + " of " + str(userQuantity) + "...")
	thisMessage = random.choice(userMessages)
	textAreaElem.send_keys(thisMessage)
	textAreaElem.send_keys(Keys.RETURN)
	time.sleep(userTimeInterval)
print ("Operation successful.")