跳过正文
  1. 文章/

创建无需API密钥的Instagram标签照片幻灯片

· loading · loading ·
杰瑞德·林斯基
作者
杰瑞德·林斯基
居住在韩国首尔的新兴领导者和软件工程师

前言
#

我真诚地希望每个人都度过了一个美好的农历新年假期,我当然度过了,访问了龙仁市的韩国民俗村。每年的这个时候,不仅是韩国的特殊时期,也是新西兰人庆祝怀唐伊日的时候!

韩国民俗村

简介
#

韩国的新西兰商会在新西兰公共假日组织各种活动。即将到来的下一个假日是怀唐伊日。像每个组织一样,营销和获得有机曝光对于维持使人们不断回访的良好形象非常重要。问题是,许多组织和团体在留住客人方面持续缺乏,往往有很高的流失率。

衡量活动的成功
#

活动本质上是社交性的 - 无论是在现实生活中还是在线上。营销在活动的整体成功中起着重要作用。就活动而言的营销不应只关注活动前的广告、计划,还应考虑活动期间和之后的营销。例如,参与度和满意度可以是一些关键绩效指标(KPI)。

重要的KPI包括:
#

  • 参与者活动参与度
  • 社交媒体参与度 - 使用活动标签可以帮助您收集有关参与者对您的活动所说内容的大量社交媒体数据。除了标签之外,社交媒体还可以用于衡量参与者与赞助商的互动,特别是如果您将其作为激活提供的话,这一点尤为重要。
  • 每个客户获取成本(CPA)
  • 新参与者与回访参与者 - 此KPI对于确保新参与者和回访参与者的健康流动至关重要。随着时间的推移,人们可能会对活动失去兴趣 - 一些流失是任何成功业务的自然组成部分。但如果几乎所有参与者都是新的,您就知道有问题了。

已识别的问题
#

我在与我一起工作的团体和我自己参加的活动中发现的问题是,大量参与者是首次访问。在缺乏参与和不满意之后,他们不会返回任何进一步的活动。一些地方之所以能生存,是因为有持续的新访客流入。是因为组织者和参与者之间几乎没有或没有互动导致人们不满意吗?还是因为参与者对活动的内容或活动的目标没有清晰的了解?

因此,很明显存在一些参与问题,以及对活动目的的误解。其次,在活动期间没有努力营销组织的努力。这意味着错过了很多潜在的有机曝光。第三,活动设备利用不足。活动场地通常有一个投影仪,用于在嘉宾演讲时显示字幕(한국어和英语)。然后在活动的剩余时间里,投影仪不再使用。通过智能工具与人群进行更多互动可以用来提高参与度。

解决方案
#

因此,鼓励组织者和参与者之间互动的解决方案是创建一个显示器,在投影仪上收集并显示参与者的图像,向其他参与者以及他们在Instagram上的朋友展示他们在活动中做什么!

通过使用Instagram,那些积极分享日常生活的用户已经在手机上拥有与组织者互动、提供反馈的工具,并进一步向他们的扩展朋友展示新西兰商会活动的目标是什么。

因此,我的目标是创建一个小型Web应用程序,旨在从#waitangikorea获取Instagram图像。

标签显示

技术细节
#

前端
#

使用的工具:
#

由于这只是一个单页,我选择JQuery作为后端来控制页面上DOM的内容。

为了使用JQuery维护屏幕上图像的状态,我使用了一个与照片空间数量相同大小的数组。每次图像显示在屏幕上时,图像的URL都会添加到数组的索引中。当我们想要添加另一张照片时,我们必须确保图像不在数组中。以下是我的代码示例。

var img_on_screen = new Array(number_of_photo_squares);
var post_index = 0;

javascript.js
while (img_on_screen.includes(post_data['img'])) {
        if( post_index > post_count - 1 ) {
            post_index = 0;
        }
        post_data = posts[post_index];
        post_index = post_index + 1;
      }
    img_on_screen[curr_index-1] = post_data['img'];
    update_img(curr_index, post_data);
    }

后端
#

使用的工具:
#

InstaLooter
#

InstaLooter是一个应用程序,允许用户在没有用户名或密码的情况下从Instagram抓取图像。如果您需要从Instagram获取图像而没有自己的私人信息泄露到互联网的风险,这非常好。

使用此应用程序的主要原因是,与互联网上可用的其他抓取器不同,它不需要您输入用户名或密码。

scraper.py

print(insta_api)
if insta_api == 1:
    subprocess.call("python -m instalooter hashtag " + hashtag +" "+ path_to_json +" -d",shell=True)

Flask
#

使用Flask的最初原因是由于其简单的设置。我仅使用Flask来提供静态文件,但是我遇到了缓存问题。这意味着每次客户端请求更新的JSON文件时,返回的文件与之前提供的文件完全相同。导致用户端的照片不同步。为了克服这一点,我从客户端直接请求静态文件更改为在Flask上创建一个获取标签和图像文件名的路由。通过这样做,我能够设置cache_timeout=-1以防止文件缓存。

文件结构
#

@app.route('/update', methods= ['GET'])
def get_file():
    # cache_timeout是send_file选项中的秒数
    return send_from_directory("data/img", "data.json", cache_timeout=-1)
Glob
#

Glob是选择符合规则的文件的好工具。例如,如果需要组合多个JSON文件。我首先需要加载每个JSON文件,然后才能将内容合并在一起。

scraper.py

for f in glob.glob(path_to_json+"*.json"):
    with open(f, "rb") as infile:
        result.append(json.load(infile))

在活动中!

感谢您阅读到这里!
#

如果您有任何进一步的问题,请随时通过电子邮件与我联系!