Bots Watch Us, Now Watch Them Again


Bots Watch Us, Now Watch Them Again
nedka

nedka

16/01/2017 11:03
Have you seen Facebook, Twitter, Google+... online on your phpBB forum? No, just because they are missing in the phpBB bot list, by default. This article helps you to add them to, as well as tracking these social bots are watching what on your site.

Adding a New Bot
Order to add a new bot, go to: ACP -> General -> Quick access -> Spiders/Robots, click into the button Add bot. Entering the bot name that you like and Agent match is one of string values in the list below. Please note the bot name is also the username, so as it must be an unique name. You can add suffixes [Bot], [Crawler]... as same as default bot names in phpBB.

Agent Match of Social Bots
Facebook:

Chép
facebot
Chép
facebookexternalhit
Twitter:
Chép
Twitterbot
Google+:
Chép
Google (+https://developers.google.com/+/web/snippet/)
Skype:
Chép
SkypeUriPreview
LinkedIn:
Chép
LinkedInBot
Pinterest:
Chép
Pinterest
Tumblr:
Chép
Tumblr
Reddit:
Chép
redditbot
VK:
Chép
vkShare

Log Links that Social Bots Visited
Now, try to write a small extension to record links that social bots visited on our phpBB forum. In the following example, we store recorded links into the user logs. You can change this behaviour, e.g. write to a text file or a table name in the database. To avoid duplicate links in the same time, add a condition: the current page must be different from the last session page.

Our demo extension name is vinabb/bot.

Example code for config/services.yml:
Chép
services:
    vinabb.bot.listener:
        class: vinabb\bot\event\listener
        arguments:
            - '@config'
            - '@log'
            - '@user'
            - '@controller.helper'
            - '%core.php_ext%'
        tags:
            - { name: event.listener }
Example code for event/listener.php:
Chép
<?php

namespace vinabb\bot\event;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class listener implements EventSubscriberInterface
{
	protected $config;
	protected $log;
	protected $user;
	protected $helper;
	protected $php_ext;

	public function __construct(
		\phpbb\config\config $config,
		\phpbb\log\log $log,
		\phpbb\user $user,
		\phpbb\controller\helper $helper,
		$php_ext
	)
	{
		$this->config = $config;
		$this->log = $log;
		$this->user = $user;
		$this->helper = $helper;
		$this->php_ext = $php_ext;
	}

	static public function getSubscribedEvents()
	{
		return [
			'core.page_header'	=> 'page_header'
		];
	}

	public function page_header($event)
	{
		if (!empty($this->user->data['is_bot']))
		{
			$session_page = ($this->config['enable_mod_rewrite']) ? str_replace("app.{$this->php_ext}/", '', $this->user->data['session_page']) : $this->user->data['session_page'];

			if (generate_board_url() . '/' . $session_page != $this->helper->get_current_url() || isset($this->user->data['session_created']))
			{
				$this->log->add('user', $this->user->data['user_id'], $this->user->ip, 'YOU_LAST_VISIT', false, [$this->helper->get_current_url()]);
			}
		}
	}
}
Let's share a post link to Facebook, and immediately go to the online list to view who is visiting your phpBB forum.


VinaBB

Quan điểm

  • Không đề cập chính trị, tôn giáo, nội dung đồi trụy.
  • Giữ gìn sự trong sáng của Tiếng Việt.
  • Không chia sẻ phần mềm vi phạm bản quyền.
  • Không rao vặt và không nhận đặt quảng cáo.
  • Dù trong túi hết tiền thì diễn đàn phpBB của anh cũng phải ngay ngắn.

Chuyện tình VinaBB

17/07/2004: Yêu phpBB từ phiên bản 2.0.10.
22/10/2006: Cất tiếng cười chào đời.
11/06/2007: Chính thức định cư trên Olympus, Sao Hỏa.
11/06/2009: Mất liên lạc với Trái Đất. [ Phiên bản 2007 ]
28/07/2016: Trôi dạt đến mặt trăng Rhea, Sao Thổ.
12/12/2016: Cuộc hành trình mới lại bắt đầu…

Code in Viet Nam

Cống hiến hết mình vì Tổ Quốc Việt Nam Xã Hội Chủ Nghĩa

Quản trị viên

nedka

NEDKA Solutions

NEDKA Solutions

Đơn vị chủ quản

Chúng tôi chịu trách nhiệm toàn bộ nội dung có trên VinaBB.vn trước pháp luật.