我正在尝试上传通过PHP从数据库创建的文本文件.
文本文件创建正常,但是当我尝试通过PHP FTP上传文件时,它就失败了.
我的代码:
$filename = "products_admin.txt";
$handle = fopen($filename, 'w+');
fwrite($handle, $content);
fclose($handle);
echo "Attempting to connect to <i>uploads.google.com</i>...<br />";
$ftp_connect = ftp_connect("uploads.google.com", "21", "5000") or die("failed to connect.");
$login_result = ftp_login($ftp_connect, "{usernamehere}", "{passwordhere}") or die("ERROR: Username or Password incorrect.");
if((!$ftp_connect) || (!$login_result)) {
echo "ERROR: Couldn't connect to <i>uploads.google.com</i>, upload failed.<br /><br />";
echo "<a href=\"javascript:location.reload(true)\">Try Again</a>";
exit;
} else {
echo "Connected to <i>uploads.google.com</i>...<br />";
$upload = ftp_put($ftp_connect, $filename, $filename, FTP_ASCII);
if(!$upload) {
echo "ERROR: Failed to …Run Code Online (Sandbox Code Playgroud) 我正在开始编写一个PHP脚本,该脚本将作为cron作业运行,并通过Google Shopping API定期更新产品列表.
我下载了PHP的GSC客户端库,我正在尝试使用Google Shopping API文档来获取令牌.然而,感觉就像在文档中某处有关于如何在生成URL后实际请求令牌的步骤.
到目前为止,这是我的代码:
require ("./lib/shoppingclient/GShoppingContent.php");
const G_MERCHANT_ID = '**********';
const G_CLIENT_ID = '**********';
const G_CLIENT_SECRET = '**********';
$obj_client = new GSC_Client (G_MERCHANT_ID);
// Obtain an OAuth2 token to access the API with
$obj_token = new GSC_OAuth2Token (G_CLIENT_ID, G_CLIENT_SECRET, USER_AGENT);
$str_url = $obj_token -> generateAuthorizeUrl ('urn:ietf:wg:oauth:2.0:oob');
echo ($str_url . PHP_EOL);
/* @var $obj_response _GSC_Response */
$obj_response = $obj_token -> makeAuthenticatedRequest (curl_init ($str_url));
echo ($obj_response);
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行上面的命令时,我得到:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=blah-blah-blah-etc-etc-etc ...
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD> …Run Code Online (Sandbox Code Playgroud) 我有一个包含许多产品的数据库,也有很多类别。我从几个供应商那里获取数据,每个供应商都使用自己的方式来描述类别分类法。所以我希望有一个更标准的方法。
Google 使用产品类别分类法进行 Google 购物:https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt
添加购物 Feed 时,如果未手动添加类别分类法,Google 将尝试匹配产品。更多信息请参见:https ://support.google.com/merchants/answer/6324436
所以我想知道既然Google尝试自动匹配,是否有支持此功能的API?或者有其他方法可以自动匹配产品吗?我有每种产品的 EAN/UPC,或者名称和描述。
理想情况下,我会将 EAN/UPS 发送到返回类别 ID 的 API,但我似乎无法找到该解决方案。
由于数据库相当大,几乎不可能进行手动映射,因此目前这不是解决方案。
我是用户而不是开发人员。开发人员不可用。
这是在 Google 购物产品提交脚本中使用的 Google API 库。
脚本成功运行,每 20 分钟一次,持续 2 年 + 昨天的前 5 个小时。
然后出现以下错误:
[18-Apr-2020 06:20:03 Europe/London] PHP Fatal error: Uncaught GuzzleHttp\Exception\RequestException: cURL error 2: easy handle already used in multi handle (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) in ../vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:162
Stack trace:
#0 ../vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(129): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 ../vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(89): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 ../vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(ThObject(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#3 ../vendor/guzzlehttp/guzzle/src/Handl in ../vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 162
Run Code Online (Sandbox Code Playgroud)
脚本停止工作时唯一的服务器更改是应用到物理主机的安全补丁和服务器重新启动。
PHP v7.3.16
我相信使用的谷歌图书馆是 v2.0
我可以按照说明进行操作,尽管可能不会理解它们!
TIA
我正在使用zen购物车项目,我使用谷歌语言转换器来改变网站的语言,
现在项目需求是否
"客户正在西班牙谷歌购物,他点击我的网站产品,他把他带到以欧元和西班牙语显示的产品页面,没有他们做任何事情".
现在我有一些具体问题要问
我们如何根据语言设置货币,b'cz zen cart没有提供这个?
是否有可能达到同样的要求?
谢谢
如果是,请建议我这样做的方法.
我尝试使用以下 node.js 代码将产品插入 Google Shopping API,但不断收到错误消息:
{ [Error: [product] INSERT request must specify product]
code: 400,
errors:
[ { domain: 'global',
reason: 'required',
message: '[product] INSERT request must specify product' } ] }
Run Code Online (Sandbox Code Playgroud)
这是我的 javascript 代码(我在这里使用节点客户端: https: //github.com/google/google-api-nodejs-client/):
var google = require('googleapis');
var OAuth2 = google.auth.OAuth2;
var oauth2Client = new OAuth2(*OAUTHDETAILS*);
oauth2Client.setCredentials({
access_token: '*ACCESSTOKEN*',
//refresh_token: 'REFRESH TOKEN HERE'
});
var content = google.content({ version: 'v2', auth: oauth2Client });
var product = {
"channel": "online",
"contentLanguage": "en",
"offerId": *PRODUCTID*,
"targetCountry": …Run Code Online (Sandbox Code Playgroud) javascript node.js google-shopping-api google-api-nodejs-client
工具 https://business.facebook.com/ads/microdata/debug 给了我警告
我可以使用哪个 OpenGraph 标签来解决问题?
HTML代码如
<meta property="google:product:category" content="Pet Supplies"/>
or
<meta property="google_product_category" content="Pet Supplies"/>
Run Code Online (Sandbox Code Playgroud)
对我不起作用。
facebook-graph-api google-shopping-api facebook-opengraph facebook-pixel