diff --git a/lib/flickrclient.php b/lib/flickrclient.php index ffe11588519..1baace00c82 100644 --- a/lib/flickrclient.php +++ b/lib/flickrclient.php @@ -60,19 +60,31 @@ class flickr_client extends oauth_helper { * @param moodle_url|string $callbackurl */ public function __construct($consumerkey, $consumersecret, $callbackurl = '') { - global $CFG; - $version = moodle_major_version(); - $useragent = "MoodleSite/$version (+{$CFG->wwwroot})"; - parent::__construct([ 'api_root' => self::OAUTH_ROOT, 'oauth_consumer_key' => $consumerkey, 'oauth_consumer_secret' => $consumersecret, 'oauth_callback' => $callbackurl, - 'http_options' => ['CURLOPT_USERAGENT' => $useragent] + 'http_options' => [ + 'CURLOPT_USERAGENT' => static::user_agent(), + ], ]); } + /** + * Return User-Agent string suitable for calls to Flickr endpoint, avoiding problems caused by the string returned by + * the {@see core_useragent::get_moodlebot_useragent} helper, which is often rejected due to presence of "Bot" within + * + * @return string + */ + public static function user_agent(): string { + global $CFG; + + $version = moodle_major_version(); + + return "MoodleSite/{$version} (+{$CFG->wwwroot})"; + } + /** * Temporarily store the request token secret in the session. * diff --git a/lib/flickrlib.php b/lib/flickrlib.php index 4b38b5dbc40..7d54e28573c 100644 --- a/lib/flickrlib.php +++ b/lib/flickrlib.php @@ -32,6 +32,11 @@ * @subpackage 3rd-party */ +defined('MOODLE_INTERNAL') || die(); + +global $CFG; +require_once("{$CFG->libdir}/flickrclient.php"); + /** * Flickr Class * @package moodlecore @@ -81,9 +86,8 @@ class phpFlickr { // Initialize curl helper, set custom user agent as Flickr blocks our "MoodleBot" agent string. $this->curl = new curl(array('cache'=>true, 'module_cache'=>'repository')); - $version = moodle_major_version(); $this->curl->setopt([ - 'CURLOPT_USERAGENT' => "MoodleSite/$version (+{$CFG->wwwroot})" + 'CURLOPT_USERAGENT' => flickr_client::user_agent(), ]); }