@showin (匠 上地)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Raspberry Pi4で撮影した写真をLINEに送信できるようにしたい

解決したいこと

Raspberry Pi4で撮影した写真をLINEに送信する監視カメラを作っているのですが、
その途中でインシデントエラーが出てしまいました。解決方法が分かりません。
明日までに解決したいと思っていますので教えてほしいです。お願いします。

発生している問題・エラー

File "sendImageLine.py", line 6
    camera.resolution = (924, 768)
         ^
IndentationError: expected an indented block

該当するソースコード

import requests
import time
import picamera

with picamera.PiCamera() as camera:
camera.resolution = (924, 768)
camera.start_preview()
# Camera warm-up time
time.sleep(2)
camera.capture('my_picture.jpg')

fname='my_picture.jpg'

url = "https://notify-api.line.me/api/notify" 
token = ""
headers = {"Authorization" : "Bearer "+ token} 

message =  "picture" 
payload = {"message" :  message} 
files = {"imageFile": open(fname, "rb")} 
r = requests.post(url, headers = headers, params=payload, files=files) 
0 likes

1Answer

インシデントではなくインデントです。

with picamera.PiCamera() as camera:
    camera.resolution = (924, 768)
    camera.start_preview()
    # Camera warm-up time
    time.sleep(2)
    camera.capture('my_picture.jpg')

Pythonにおいて、インデントはコードブロックを表します。
ブロック構文のwith句があるにもかかわらず、
その直後がインデントされていないので構文エラーとなっています。

上記のように、少なくともcamera変数を用いている箇所までは、
withの範囲としてインデントする必要があります。

(動かしていないのでこれ以外のエラーがないことは保証できません)


それはそうと、こういった公の場にAPIトークンをそのまま貼り付けるのはよくないです。
速やかに再発行されることをお勧めします。

0Like

Comments

  1. @showin

    Questioner

    どのようにしたらいいか分からないので
    コードを整えてもらってもいいでしょうか?
  2. 原因もコードの修正案もすでに明確な形で提示しています。
    回答をお読みになった上で、具体的に何が分からないのかをお書きください。
    また、エラーの内容が変わった場合はそれを示してください。
  3. @showin

    Questioner

    分かりました。
    もう一度読み返してみます。

Your answer might help someone💌