Простой API Twitter для Magento 2 - как? - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь получить следующее: В магазине Magento 2 я хочу, чтобы под каждым продуктом был уголок социальных сетей. Для FB это все выяснили до сих пор. То, что я точно хочу иметь, это кнопка «Поделиться / Твитнуть», которая делит URL продукта, изображение продукта, предопределенный текст (из бэкэнда), предопределенные хэштеги (из бэкэнда) и предопределенный через (из бэкэнда). Я дошел до того, что могу делать все, кроме изображения, используя javascript: #

    define([
    'jquery',
    'underscore'
], function ($, _) {
    'use strict';

    $.widget('xxx.shareTW', {
            options: {
                quote: null,
                hashtags: null,
                via : null
            },
            _create: function(){
                var self = this;
                twttr.widgets.createShareButton(
                    '/',
                    document.getElementById('twShareBtn'),
                    {
                        count: 'none',
                        text: this.options.quote,
                        hashtags: this.options.hashtags,
                        via: this.options.via
                    }).then(function (el) {
                    console.log("Button created.")
                });
            }
        }
    );
    return $.xxxx.shareTW;
});

Это позволяет мне передавать все, что мне нужно, но, конечно, не показывает изображение. Итак, я прочитал о Twitter-картах и ​​о том, что они создаются автоматически, когда ссылка предоставляется из метатегов. Таким образом, мои мета-теги выглядят так:

<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@xxx" />
<meta name="twitter:creator" content="@xxx" />
<meta property="og:type" content="product" />
<meta property="og:title" content="<?= $block->escapeHtmlAttr($block->stripTags($block->getProduct()->getName())) ?>" />
<meta property="og:site_name" content="<?= $block->escapeUrl($block->getProduct()->getName()) ?>" />
<meta property="og:image" content="<?= $block->escapeUrl($block->getImage($block->getProduct(), 'product_base_image')->getImageUrl()) ?>" />
<meta property="og:description" content="<?= $block->escapeHtmlAttr($block->stripTags($block->getProduct()->getShortDescription())) ?>" />
<meta property="og:url" content="<?= $block->escapeUrl($block->getProduct()->getProductUrl()) ?>" />
<?php if ($priceAmount = $block->getProduct()->getPriceInfo()->getPrice(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE)->getAmount()):?>

Вещь - это шоу, посвященное Карте. У меня есть стандартный robots.txt, настроенный в Backend, кстати. Следующим шагом было погружение в Twitter API для POST. Эта вещь чертовски смущает меня. Я не могу сказать, как я могу заставить все это работать. Особенно какие ключи / токены мне нужны для этого, какие аутентификации? (1.0a 2 премиум все что угодно). Я даже не знаю, будет ли это правильным способом. Я имею в виду, что когда я размещаю это сообщение, у меня не появляется всплывающее окно, где я могу выбрать, ЕСЛИ я хочу поделиться этим в любом случае (представьте, что клиент нажимает кнопку твита). Так что я думаю, что я должен сделать это самостоятельно. Я как бы потерялся прямо сейчас и хотел бы посоветовать, как подойти к этой проблеме. Я довольно новичок в Magento и php. Я думаю, у меня просто огромное недоразумение о том, как все работает. Я был бы очень рад, если бы кто-нибудь дал мне подсказку в правильном направлении. (Весь API делает c из твиттера, и их разные процессы аутентификации слишком запутанны) Спасибо, заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...